简介
本篇文章记录自己在使用git时积累的命令,后续会不断更新。学习过程中我推荐一篇图解Git的文章和官网推荐书籍的中文版,详情在https://github.com/xiajunyi/git-learning。
git stash(暂存)
暂存当前工作区和缓存区的内容
1
git stash
取回某个暂存编号的内容,恢复到工作空间和缓存区
1
git stash pop
git reset(重置)
只重置本地仓库的内容
1
git reset --soft [<commitId>]
默认是这种情况,重置本地仓库和缓存区的内容
1
git rest --mixed [<commitId>]
重置本地仓库、缓存区以及工作空间的内容
1
git rest --hard [<commitId>]
git checkout(检出:功能较杂)
切换分支
1
git checkout <branchName>
新建分支
1
2
3
4git checkout -b <branchName>
#等价如下两条命令
#1. git branch newBranch
#2. git checkout newBranch新建关联到某远程分支的分支
1
git checkout -b <branchName> <remoteBranchName>
强制新建分支
1
git checkout -B <branchName>
选择一个提交记录为起点去创建新分支
1
git checkout -b <new_branch> [<start_point>]
git diff(比较差异)
比较工作区和暂存区
1
git diff
比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
1
git diff --cached [<path>...]
比较工作区与最新本地版本库
1
2git diff HEAD [<path>...]
#如果HEAD指向的是master分支,那么HEAD还可以换成master比较工作区与指定commit-id的差异
1
git diff commit-id [<path>...]
比较暂存区与指定commit-id的差异
1
git diff --cached [<commit-id>] [<path>...]
比较两个commit-id之间的差异
1
git diff [<commit-id>] [<commit-id>]
git cherry-pick/rebase(自定义合并)
只挑选某几条提交记录合并到该分支
1
git cherry-pick <commitId1> [<commitId12>] ...
将A分支所有新提交的内容以B分支为基准合并
1
2git rebase B
#前提是当前在A分支上仅将A分支某个提交号以后的内容以B分支为基准合并
1
2git rebase --onto B <commitId>
#前提是当前在A分支上
git rm(git常用的删除)
删除暂存区或分支上的文件,同时工作区也不需要这个文件了
1
2git rm file_path
git commit -m 'delete somefile'删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
1
2git rm --cached file_path
git commit -m 'delete remote somefile'
强制操作
强制将分支指向某一提交记录)
1
git branch -f <branchName> <commitId>
更改某一次提交的内容
1
git commit --amend [<commitId>]
强制推送本地的版本覆盖远程分支的内容
1
git push -f
常用查看技巧
更为紧凑的git status
1
git status -s
带差异的显示最近两条提交记录
1
git log -p -2
将每个提交放在一行显示
1
git log --pretty=oneline
git log –pretty=format 常用的选项:
1
git log --pretty=format:"%h - %an, %ar : %s
1 | 选项|说明 |
参考资料
本文链接: https://www.xiajunyi.com/pages/p51.html
版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载请注明出处!