如何通过在Git中选择远程版本来自动解决合并冲突?

18 git merge conflict

有没有办法指定git通过为每个文件获取远程版本来自动解决一包文件的冲突?例如,要将每个文件的远程版本放在某个目录中?

Dav*_*itt 17

git-merge似乎只支持"我们的"策略,其中合并的结果是本地版本.那只适用于整棵树.

如果你进入了冲突状态,在做合并,你可以使用git的结帐--theirs一个路径从索引检索文件.

最后,你可以git-reset来强制树的某些部分进行特定的提交.

现在还有http://www.seanius.net/blog/2011/02/git-merge-s-theirs/,他们基本上建议制作一个merge -s ours然后反向应用更改.

  • 如果 git-checkout 没有 --ours|--theirs 选项,您可以使用 'git show :2:full_path > file' 来表示 --ours (stage #2),并使用 'git show :3:full_path > file ' 为--他们的(阶段#3)。或者使用“git checkout-index --stage=2|3 -- file...”管道 (2认同)

L. *_*nda 6

您可以将recursive策略(-s)与theirs选项(-X)一起使用。那是:

git merge -s recursive -X theirs source_branch
Run Code Online (Sandbox Code Playgroud)