如何确定哪个父级是Git中合并提交的第一个父级
我在阅读git中使用如何确定哪个父级是Git中合并提交的第一个父级,git,git-merge,git-commit,Git,Git Merge,Git Commit,我在阅读git中使用~操作符与^操作符的区别时,遇到了这个问题 谷歌搜索后,我无法找到一个很好的解释,那就是git如何区分合并提交的第一个父级和第二个父级 有经验法则吗 例如,将功能分支合并到开发分支中,创建合并提交G develop feature/foo A D | | B E | | C F \ / G <- develop(HEAD) 开发功能/foo D | | B E |
~
操作符与^
操作符的区别时,遇到了这个问题
谷歌搜索后,我无法找到一个很好的解释,那就是git如何区分合并提交的第一个父级和第二个父级
有经验法则吗
例如,将功能
分支合并到开发
分支中,创建合并提交G
develop feature/foo
A D
| |
B E
| |
C F
\ /
G <- develop(HEAD)
开发功能/foo
D
| |
B E
| |
碳纤维
\ /
因此,不存在提交的父级。但是,您可以根据运行git合并的分支来确定哪一个是父级
是否类似于在其上进行合并提交的分支决定了
第一父母
对
请参考Pro Git的版本:
您还可以在“^”后面指定一个数字,以标识您选择的父项
希望例如,d921970^2表示“d921970的第二个父级”
此语法仅适用于合并提交,它具有多个
父母亲 — 合并提交的第一个父级来自您所指定的分支
合并时处于启用状态(通常为主),而第二个父级
合并提交的分支来自合并的分支(例如,主题):
而像git show G^1
,git show G^2
,git log-1--pretty=%p G
,和git rev parse G^
这样的命令可以证明它与所描述的相同。此外,使用git cat file-p G
检查提交对象的内容,我们可以看到父对象按顺序记录。第一个父对象通常是执行合并的分支的头
提交。
git commit
使用HEAD
commit作为第一个父级(如果没有冲突,git merge
将为您执行提交,否则您自己执行。两种方式的结果相同)。所有便利命令都遵循此约定。您可以使用git commit tree
自己构建任意提交,并出于任何原因指定您喜欢的任何父级。我想首先是您合并到的父级。它不在文档中,我们必须检查源代码。每个提交至少有一个父级。合并提交有2个或更多。感谢提供信息。