gpt4 book ai didi

git - 如何确定哪个父级是 Git 中 merge 提交的第一个父级

转载 作者:行者123 更新时间:2023-12-03 23:46:10 26 4
gpt4 key购买 nike

我正在阅读有关使用 ~ 的不同之处。对比 ^ git 中的运算符,我遇到了这个问题 What's the difference between HEAD^ and HEAD~ in Git?
谷歌搜索后我在网上找不到好的解释的一件事是 git 如何区分 merge 提交的第一个父级和第二个?
有经验法则吗?
以这个例子为例,其中一个 feature分支 merge 进入 develop分支,创建 merge 提交 G .

develop feature/foo
A D
| |
B E
| |
C F
\ /
G <- develop(HEAD)
哪个是 G的第一个父节点? CF ?为什么是第一个 parent ?
注意:这不是 git 命令确定第一个或第二个父级的请求。我知道可以使用 git show G^1 来实现。和 git show G^2 .我看到了 CG 的第一个父节点和 F是第二个 parent 。但是,我不明白为什么会这样。是否就像进行 merge 提交的分支决定第一个父级一样?

最佳答案

Is it like the branch on which the merge commit is made determines thefirst parent?


是的。
引用 Git-Tools-Revision-Selection专业 Git 的:

You can also specify a number after the ^ to identify which parent youwant; for example, d921970^2 means “the second parent of d921970.”This syntax is useful only for merge commits, which have more than oneparent — the first parent of a merge commit is from the branch youwere on when you merged (frequently master), while the second parentof a merge commit is from the branch that was merged (say, topic):


以及类似 git show G^1 的命令, git show G^2 , git log -1 --pretty=%P G , 和 git rev-parse G^@ ,可以证明它与描述的相同。此外,使用 git cat-file -p G检查提交对象的内容,我们可以看到 parent 是按顺序记录的。

关于git - 如何确定哪个父级是 Git 中 merge 提交的第一个父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62527864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com