在涉及相对提交引用的 Udacity 课程中,它说:
^ 表示父提交,~ 表示第一个父提交
^ 和 ~ 之间的主要区别在于提交的时间
由合并创建。合并提交有两个父项。通过合并
commit 时,^ 引用用于指示该文件的第一个父级
提交,而 ^2 表示第二个父级。第一个父母是
当你运行 git merge 而第二个父分支时你所在的分支
被合并的分支。
根据课程,基于以下输出git log --graph --oneline
,带有 SHA 的提交f69811c
is HEAD~4^2
相对于(最顶层,带有头指针)提交9ec05ca
.
那么 HEAD~4 本身意味着第一个父级,而 ^2 意味着它也是第二个父级?这些东西不是互相矛盾吗?任何澄清表示赞赏。
X~n
意思是:n
的第一个祖先X
.
X^
意思是: 的父级X
。这相当于X~1
.
If X
有多个父级,使用时需要区分它们^
符号。所以X^1
将是第一个父母,X^2
将是第二个父母,依此类推。X^
相当于X^1
(也相当于X~1
).
在您的示例中,从提交开始9ec05ca
,即HEAD
:
-
db7e87a
is HEAD~1
(或者也可以HEAD^
).
-
796ddb0
is HEAD~2
(或者也可以HEAD^^
).
-
1a56a81
is HEAD~4
(或者也可以HEAD^^^^
,但没有人会使用它)。
-
e014d91
,是第一个父母 of 1a56a81
, is HEAD~5
, or HEAD~4^
, or HEAD~4^1
.
-
f69811c
,是第二父母 of 1a56a81
, is HEAD~4^2
.
参考
https://git-scm.com/docs/gitrevisions
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)