【发布时间】:2018-03-21 01:18:25
【问题描述】:
我一直在关注 Scott Chacon 的 Pro Git Book,我已经到了第 3 章的结尾,我们刚刚完成了三路合并。见下图(我自己绘制的图不是本书的屏幕截图):
'master'和'issue53'合并后,导致合并提交c6,作者说我们可以删除分支'issue53'。
git branch -d issue53
引擎盖下的那个分支实际上发生了什么,结果图会是什么样子?我问这个是因为作者没有解决这个问题。分支是否仍然存在但只是没有指向?还是发生了一些我不知道的魔法?
【问题讨论】:
-
这张图看起来不像我以前看到的那样。在任何情况下,当您删除一个分支时,如果该分支中的提交被其他分支引用,它们将持续存在,至少对于大多数提交来说,这里可能就是这种情况。实际上,即使你核对一个分支,所有提交仍然会在 reflog 中列出,至少在一段时间内。
-
蒂姆,我简化了图表以切入核心点。我很想知道你会以不同的方式绘制它。
-
嗨安德鲁,你确定这是三路合并吗?据我所知,commit
C6只有两个,而不是三个父母。 -
教科书上是这样称呼的,所以我认为它是正确的。这是因为合并需要 C2、C4 和 C5。
-
@TimBiegeleisen(和 Andrew S):术语 三向合并 指的是单个祖先加上作为其输入的两个版本。见en.wikipedia.org/wiki/Merge_(version_control)#Three-way_merge