我在历史上有几个糟糕的合并(由于人为错误(。我想要一种快速的方法来找出我是否有更多这样的。为了自动化它,我想看看,对于每个合并提交,好像合并将自动执行(使用给定的冲突解决策略(与给定合并中实际发生的情况之间的区别。
我该怎么做?
您必须进行自动合并。
为此,请检查嫌疑人合并的两个父项之一,在此过程中给自己一个"分离的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 条目过期时(会被垃圾回收。 为了保留它,请给它一个名字:分支或标签名称效果很好。