在Git中,您可以使用简写HEAD~来引用HEAD之前的提交,使用HEAD~2之前引用两次等等。
我有一个存储库,它具有如下所示的合并提交:
A----B-------------F
\ /
C----D----E
HEAD = F,HEAD~指向B,HEAD~2指向A.使用这样的合并提交,是否有指向E的简写?
答案 0 :(得分:6)
是;在合并的情况下,~
指定生成but you can use ^
to specify the parent number。
git show HEAD^2
将显示第二位父母。
(区别特别微妙,因为如果没有数字参数~
和^
显示相同的内容,HEAD
的第一个父级。这是因为~
并且^
默认为1
而没有数字参数。所以他们显示第一个父(按深度)和第一个父(按宽度),当然是相同的。)
答案 1 :(得分:1)
我知道你要求提交E,但是提交C的简写是理解^和〜之间差异的更好的例子。
以下是C:
的简写HEAD^2~2
e.g。 HEAD的第二个父母,然后2从那里跳下第一个母链。
尝试克隆此回购以自己查看(查找"克隆"链接):
http://vm.bit-booster.com/bitbucket/plugins/servlet/bb_net/projects/BB/repos/a/commits
以下是这个答案涵盖的各种缩写解决方法:
git show --no-patch --oneline HEAD
1286a9a F
git show --no-patch --oneline HEAD^2
9640db6 E
git show --no-patch --oneline HEAD^2~2
506916b C
为读者练习:用另一种方式(使用这个回购)写HEAD ^ 2~3?