合并提交与其父项之一之间的git diff如何为空?

时间:2016-01-24 14:38:25

标签: git merge diff git-diff

我对这个git commit log感到困惑。 我认为相关事实在下面的屏幕截图中。 屏幕截图来自源树。但是如果我在命令行上运行git diff,我会得到相同的空差异。

diff between 1 and 4

diff between 1 and 2

(如果我单击选择提交4,则差异也是空的。)

我无法理解的是为什么在提交1和4之间diff是空的。或者为什么作为合并的提交4不包含文件差异。

提交2将文件更改引入紫色分支,我无法看到它们如何不属于1和4之间的差异。

(提交3是来自分支的合并,它是最左边分支(主干)的历史版本。所以我认为将它放在那里是没有意义的;如果它是从当前状态的合并它将允许合并4成为快进的主干,现在它只是主干的一个子集的合并。)

编辑: 工作流程是git flow。所以右边的行是特征分支,最左边是一个与特征分支合并的开发分支。

1 个答案:

答案 0 :(得分:0)

我的错误。实际上我相信根据我对情况的描述,提交4中的合并不应该是空的,就像1和4之间的差异不可能是空的一样。 对于它原因的解释是,与我所写的相反,提交3不仅仅是来自开发分支的先前状态的合并。对于一些我未知的原因,这个合并提交实际上恢复了提交2完成的文件更改。在这个新的亮点中,差异是空的并不再奇怪。

很抱歉浪费了你的时间。