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
|
|
|
|