我有以下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
感兴趣的文件。
答案 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
和修补程序中都已更改的文件。