自动解决除某些文件以外的git冲突

时间:2016-09-26 14:49:46

标签: git

我有以下git repo:

oooooooooooooo
   o       o
    o V1    o V2
     o
      o MyChange

git diff我有一个V1..MyChange。现在我想将所有内容合并到V2并为V2..MyChange创建一个新差异。

除了V2 diff中存在的文件外,如何通过V1..MyChange告诉Git自动解决所有冲突?

我试过了

git checkout MyChange
git merge V2

我在文件修改和文件删除方面都遇到了100多个冲突。我只想从V2获取所有内容,除了我对MyChange感兴趣的文件。

1 个答案:

答案 0 :(得分:1)

您似乎有一些当前应用于V1之上的补丁,并且您希望更新您的回购并在V2之上应用补丁。如@Yehezkel's comment中所述,rebase是更好的方法。

具体来说,你可以这样做:

git checkout MyChange
git rebase --onto V2 V1

或者简单地说:

git rebase --onto V2 V1 MyChange

这会导致您的历史记录如下:

oooooooooooooo
   o       o
    o V1    o V2
             o
              o MyChange

您可能仍然存在冲突,但它应该仅限于实际冲突,即V2和修补程序中都已更改的文件。