我正在阅读有关使用的差异~
vs ^
git 中的运算符,我遇到了这个问题Git 中的 HEAD^ 和 HEAD~ 有什么区别? https://stackoverflow.com/q/2221658/2498327
在谷歌搜索后,我在网上找不到一个很好的解释,那就是 git 如何区分合并提交的第一个父级和第二个父级?
有经验法则吗?
拿这个例子来说,feature
分支已合并into the develop
分支,创建合并提交G
.
develop feature/foo
A D
| |
B E
| |
C F
\ /
G <- develop(HEAD)
哪个是第一个父母G
? C
or F
?为什么它是第一个父母?
注意:这不是请求 git 命令来确定第一个或第二个父级。我知道它可以通过使用来实现git show G^1
and git show G^2
。我看到C
是第一个父母G
and F
是第二个父母。但是,我不明白为什么会这样。是不是像进行合并提交的分支决定了第一个父级?
是不是像进行合并提交的分支决定了
第一个父母?
Yes.
参考Git-工具-修订-选择 https://git-scm.com/book/en/v2/Git-Tools-Revision-SelectionPro Git 的:
您还可以在 ^ 后指定一个数字来标识您的父母
想;例如,d921970^2 表示“d921970 的第二个父级”。
此语法仅适用于具有多个提交的合并提交
Parent — 合并提交的第一个父级来自您的分支
当您合并时(通常是主控),而第二个父级
合并提交来自被合并的分支(例如主题):
和命令像git show G^1
, git show G^2
, git log -1 --pretty=%P G
, and git rev-parse G^@
,可以证明它与描述的相同。此外,使用git cat-file -p G
检查commit对象的内容,我们可以看到父对象是按顺序记录的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)