在合并冲突期间使远程分支优先

时间:2014-05-02 10:52:35

标签: git

我有两个分支currentmastercurrentmaster之前提交了数十项提交,因此我认为现在是合并的时间。

我改为master

git checkout master

我尝试与current

合并
get merge current

我得到了大约20种这种性质的冲突:

CONFLICT (rename/add) <remote>
CONFLICT (rename/add) <remote>

第一个问题,如何使远程分支current优先于此?我正在解决与git mergetool -t meld的所有冲突,并且我点击了,选择了对本地更改的所有远程更改。

那么如何使用一个命令执行此操作?我希望遥控器能够出席。

另外,为什么会发生这些冲突?我会想到最新的分支会包含我们想要保留的更改吗?

1 个答案:

答案 0 :(得分:6)

合并时,您可以指定用于自动解决某些冲突的策略(注释包含指向此http://git-scm.com/docs/git-merge的手册页的链接)。您可以使用带有theirs选项的递归策略。这将通过使用正在合并的分支中的版本来解决所有冲突。如果您将master合并到您的分支中,那么它将是ours

该命令将最终成为:

git merge -s recursive -Xtheirs current

这将解决所有与正在合并的分支上的内容的冲突。

如果存在冲突,在提交合并之前,我会仔细检查差异git diff --staged。并运行您拥有的任何测试,以确保冲突解决方案不会覆盖您实际需要的master上的更改。