繁体   English   中英

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

[英]How can a git diff between a merge commit and one of its parents be empty?

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

差异介于1和4之间

1和2之间的差异

(如果我单选提交4,差异也为空。)

我不明白的是为什么在提交1和提交4之间的差异是空的,或者为什么作为合并的提交4不包含文件差异。

提交2向紫色分支引入了文件更改,但我看不到它们不会成为1到4之间差异的一部分。

(Commit 3是来自分支的合并,该分支是最左边的分支(主干)的历史版本。因此,我认为将其放在那里是没有意义的;如果它是从主干的当前状态进行的合并,将允许合并4成为快进,现在它只是中继的子集的合并。)

编辑:工作流是git flow。 因此,右侧的线是要素分支,最左侧的线是将要素分支合并到的开发分支。

我的错。 实际上,我相信,根据我对这种情况的描述,提交4处的合并应该不可能为空,就像1与4之间的差异不可能为空一样。 为何这样做的解释是,与我写的内容相反,提交3不仅仅是来自dev分支以前状态的合并。 出于某种未知的原因,此合并提交实际上恢复了提交2所做的文件更改。在这种新情况下,差异为空不再是奇怪的。

抱歉,您在此上浪费了时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM