Git命令使用记录-工具篇
Git命令使用记录-来源自官方文档
选择修订版本
简短的 SHA-1
查看每次提交简短的SHA-1值
| |
假设某个提交是
1c002dd....,如果你想git show这个提交,下面三个命令是等价的(假设简短的版本没有歧义)
| |
分支引用
如果想查看某个分支的最后一次提交信息,可以使用
rev-parse探测出该分支的最后一次SHA-1值
| |
然后再
git show打印出的SHA-1值
引用日志
| |
如果想查看仓库中HEAD在五次前的所指向的提交
| |
如果想查看
master分支在昨天的时候指向了哪个提交
| |
引用日志只存在于本地仓库,如果查询的时间早于本地最早操作时间,则会显示第一次操作记录
可以运行
git log -g来查看类似于git log输出格式的引用日志信息
| |
祖先引用
查看
HEAD的上一个提交,也就是“HEAD的父提交”,下面两个命令等价
| |
查看
HEAD的第二父提交
| |
查看
HEAD的第一父提交的第一父提交,下面两个命令等价
| |
提交区间
双点
查看
experiment分支中还有哪些提交尚未被合并入master分支
| |
查看
master分支中存在,而experiment分支中不存在的提交,下面三个命令等价
| |
如果在
..的某一边留空,则默认为HEAD
多点
查看所有被
refA或refB包含的但是不被refC包含的提交,下面两个命令等价
| |
三点
查看
master或者experiment中包含的但不是两者共有的提交
| |
如果加上参数
--left-right,会显示每个提交到底处于哪一侧的分支
| |
交互式暂存
如果运行
git add时使用-i或者--interactive选项,Git将会进入交互式终端模式
| |
储藏与清理
如果想要切换分支,但是不想提交之前修改的文件,这时需要用到储藏
| |
这时就可以轻易的切换分支并在其他地方工作,如果想要查看储藏
| |
如果想要重新应用储藏,执行👇命令,如果不指定一个储藏,则默认最近一个
| |
重新应用后,之前暂存的文件并没有重新暂存,这时需要
--index选项
| |
重新应用后,堆栈上的储藏并不会删除,可以使用删除命令
| |
如果想要将储藏重新应用后立即从栈上删除,可以使用👇的命令
| |
如果不想储藏已暂存的文件,需要
--keep-index选项
| |
如果想储藏未跟踪文件,需要
--include-untracked或-u选项
| |
如果指定了
--patch标记,Git会交互式的提示储藏
| |
从储藏创建一个分支
如果重新应用储藏时,可能会有冲突,这时可能会想创建一个新分支,并在新分支上重新应用储藏
| |
清理工作目录
移除所有未被忽略并且未被追踪的文件,非常危险!
| |
更安全一些的命令,将所有文件储藏
| |
git clean的一些选项查看
git clean将会做什么,-n
| |
移除工作目录中所有未追踪的文件以及空的子目录,
-d
| |
强制移除,确定移除,
-f
| |
移除
.gitignore文件忽略的文件类型,-x
| |
以交互模式运行clean命令,
-i
| |
特殊合并
合并某个分支上的单个commit
假设将feature分支上的commit
fdb7b6合并到master分支,不合并其它commit:
先查找想要合并的commit的SHA-1值;
再checkout到想要合并的分支;
| |
最后执行
cherry-pick命令:
| |
合并某个分支上的一系列commits
假设将feature分支上的commit
fdb7b6至d46ee6合并到master分支首先,在feature分支基础上创建一个新分支,并且指明最后一个commit
| |
然后,使用
rebase命令合并到master分支,要指明合并开始的commit
| |
| |