1

有一个存在冲突的功能分支。这些都得到了解决,并提交了决议。

不幸的是,我搞砸了合并,并且一些先前发布的功能倒退了——这是通过在合并提交 sha1 和前一个标签之间进行差异来验证的。

当我这样做时,git show <sha1 for merge commit>所有更改都是无害的。

当我这样做时git log -Sunique_variable_added_for_feature_and_lost_after_botched_merge,我只看到添加的提交,unique_variable_...但看不到来自错误合并的有问题的删除。

然而,当我采取可耻的步骤在像 Tower 这样的 gui git 客户端中查看提交的 sha1 时,我可以清楚地看到拙劣的线条。

我完全错过了 Tower 使用的附加开关吗?为什么pickaxe没有选择合并提交中隐含的删除?

4

1 回答 1

1

合并提交差异必然显示为“组合差异”,显示与合并提交的所有父项相比的差异。但是,git show另外使用了--ccdiff 选项,该选项通过仅显示冲突解决方案来缩短输出。正如手册所解释的那样,非冲突的大块,例如导致您的问题的删除,被跳过为“无趣” 。

用于git show -c <commit>以未删节的形式请求合并的差异,您将看到合并提交引入的所有更改。这很可能是 GUI 程序所做的。

于 2012-10-05T21:29:15.237 回答