强制Git在合并期间总是选择较新的版本?

bar*_*tek 94 git merge conflict

让我们假设我mergegit并且存在合并冲突.

我的问题是:如何强制git始终选择冲突的较新版本的代码,所以我不需要手动解决冲突?

Ren*_*non 181

它不完全是"更新"的版本,但你可以告诉git总是喜欢使用当前分支上的版本git merge branch -X ours,或者更喜欢使用的合并分支的版本git merge branch -X theirs.

来自man git-merge:

我们:

此选项通过支持我们的版本强制冲突的帅哥干净地自动解决.来自与我们方不冲突的其他树的更改将反映到合并结果中.对于二进制文件,整个内容都来自我们这边.

他们的:

这与"我们的"相反.

  • 注意:如果您已经使用过`git merge branch`,那么在执行此操作之前,您需要使用`git merge --abort`. (13认同)
  • `我们的` - 他们的!只是说出来,你明白命令的作用!我喜欢Git!:d (9认同)
  • 如果它们未被跟踪,则需要先删除它们(或`git add`).阅读一下"git clean",它可能对你有帮助. (2认同)

wol*_*ang 15

我用这个,

git fetch --prune
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)

  • 除非您确切知道它的作用,否则不要使用它,这对于初学者来说是减轻大量工作的好方法。这根本不会合并代码,更不会选择最新的代码。它只是用远程存储库中的内容覆盖分支中的所有内容。这是一个非常有用的命令(我在修改一些东西来尝试不同的东西之后一直使用它),但在使用它之前请确保本地分支中没有要保存的新代码。 (3认同)
  • 当我只想用 master 分支覆盖时,这个解决方案帮助我修复了未合并的冲突。我使用了 git reset --hard master(来自本地) (2认同)