我有两个Git分支,mybranch
(已签出)和theirbranch
。我想将theirbranch
合并到mybranch
中,如果我更改了文件的版本(即自上一个共同祖先以来在mybranch
上进行了更改,则通过保留文件的版本来解决冲突),并且如果没有的话,文件的版本。
如何在Git中做到这一点?
两件事不起作用:
git merge -s ours
:即使我没有更改,这也会保留我所有文件的副本。git merge -Xours
:这可以防止theirbranch
中发生冲突的大块文件被我更改;我想忽略我已更改的文件中来自theirbranch
的所有请求。答案 0 :(得分:1)
这是一种解决方案(假设使用了类似Bash的shell):
git merge theirbranch
git diff --name-only "$(git merge-base theirbranch HEAD)"..HEAD \
| xargs git checkout HEAD
git commit
如果有人可以提出一些简短的建议,那就太好了!