我如何看到合并提交与相同父项的自动合并之间的差异



我在历史上有几个糟糕的合并(由于人为错误(。我想要一种快速的方法来找出我是否有更多这样的。为了自动化它,我想看看,对于每个合并提交,好像合并将自动执行(使用给定的冲突解决策略(与给定合并中实际发生的情况之间的区别。

我该怎么做?

您必须进行自动合并。

为此,请检查嫌疑人合并的两个父项之一,在此过程中给自己一个"分离的HEAD"。 如果$suspect_merge包含可疑合并的合适名称(例如,哈希 ID(:

git checkout $suspect_merge^1

然后,在两个父母中的另一个上运行git merge

git merge [options] $suspect_merge^2

合并将完成并在分离的 HEAD 上进行新提交,或者由于冲突而失败。 如果失败,您可以手动正确地完成它,然后提交。

现在您有一个很好的合并,您可以将其与可疑合并进行比较:

git diff $suspect_merge HEAD

当您git checkout任何命名分支时,您刚刚在分离的 HEAD 上进行的合并将被放弃。 它最终(通常在 30 天后的某个时间,当它的 reflog 条目过期时(会被垃圾回收。 为了保留它,请给它一个名字:分支或标签名称效果很好。

最新更新