如何通过保留更改后的文件版本来解决git merge冲突?

时间:2020-08-01 00:41:27

标签: git git-merge

我有两个Git分支,mybranch(已签出)和theirbranch。我想将theirbranch合并到mybranch中,如果我更改了文件的版本(即自上一个共同祖先以来在mybranch上进行了更改,则通过保留文件的版本来解决冲突),并且如果没有的话,文件的版本。

如何在Git中做到这一点?

两件事不起作用:

  • git merge -s ours:即使我没有更改,这也会保留我所有文件的副本。
  • git merge -Xours:这可以防止theirbranch中发生冲突的大块文件被我更改;我想忽略我已更改的文件中来自theirbranch的所有请求。

1 个答案:

答案 0 :(得分:1)

这是一种解决方案(假设使用了类似Bash的shell):

git merge theirbranch
git diff --name-only "$(git merge-base theirbranch HEAD)"..HEAD \
| xargs git checkout HEAD
git commit

如果有人可以提出一些简短的建议,那就太好了!