如何找出导致冲突的Git提交?

Dav*_*son 16 git conflict git-merge

我正在将上游更改合并到我的项目中,最近有很多提交产生了很多合并冲突.尝试一次解决所有问题是没有意义的.

如何找出哪些提交会产生冲突?以下任何一种都是可以接受的:

  • 一种让Git在发现冲突时立即停止合并的方法
  • 一种让Git按时间顺序列出所有冲突提交的方法
  • 还有其他让我按时间顺序一个接一个地解决冲突的事情,它不涉及一次合并一些提交,希望偶然发现冲突

Von*_*onC 16

你可以给混帐的Imerge一试:将你的申请提交一个接一个,让你做一个底垫的机会增量(这意味着你可以开始衍合,中断它,稍后恢复!).

您可以在此处看到增量合并与直接合并与rebase之间的比较.


Joh*_*ter 5

迈克尔·哈格蒂也有一个叫做工具git-mergemate具有find-conflict命令:

git-mergemate find-conflict BRANCH1..BRANCH2

使用二分法确定最早的提交BRANCH2会导致合并时发生冲突BRANCH1.实际上不保留任何合并.

git-mergemate find-conflict BRANCH1...BRANCH2

使用二分法查找一对不能完全合并的最早提交(每个分支一个).实际上不保留任何合并.

git imerge可用于执行增量合并并解决沿途的冲突,尽管它没有相应的find-conflictsin git-mergemate.

  • 在链接之后,似乎`git-mergemate`实际上只是一个旧版本的`git imerge`,在VonC的回答中提出.您应该编辑此答案以直接指向imerge. (2认同)