Git合并提交如何知道哪个是“真正的”父级?

时间:2013-10-19 22:24:44

标签: git version-control merge

据我所知,Git通过追溯当前HEAD通过其父节点到根节点的变化来计算出存储库的当前状态。

合并提交有两个父母,例如C6

Merge commit example from git-scm book

[source]

我理解拥有这样多个父母的优点,理由等等。

但是,我不明白你如何追溯历史。如果您的头部位于master分支的顶端,并且您一次追溯一个提交,那么Git如何知道C6的“真实”父级是C5?它只是它们存储在提交文件中的顺序吗?

还是我误解了什么?这不是Git所做的吗?

1 个答案:

答案 0 :(得分:6)

没有“真正的”父母这样的东西。合并有多个父母,可能超过两个,并且没有一个比另一个更真实。你在想的是第一个父母,这应该给你答案;父母被命令。