我有两个分支current
和master
。 current
在master
之前提交了数十项提交,因此我认为现在是合并的时间。
我改为master
git checkout master
我尝试与current
get merge current
我得到了大约20种这种性质的冲突:
CONFLICT (rename/add) <remote>
CONFLICT (rename/add) <remote>
第一个问题,如何使远程分支current
优先于此?我正在解决与git mergetool -t meld
的所有冲突,并且我点击了,选择了对本地更改的所有远程更改。
那么如何使用一个命令执行此操作?我希望遥控器能够出席。
另外,为什么会发生这些冲突?我会想到最新的分支会包含我们想要保留的更改吗?
答案 0 :(得分:6)
合并时,您可以指定用于自动解决某些冲突的策略(注释包含指向此http://git-scm.com/docs/git-merge的手册页的链接)。您可以使用带有theirs
选项的递归策略。这将通过使用正在合并的分支中的版本来解决所有冲突。如果您将master合并到您的分支中,那么它将是ours
。
该命令将最终成为:
git merge -s recursive -Xtheirs current
这将解决所有与正在合并的分支上的内容的冲突。
如果存在冲突,在提交合并之前,我会仔细检查差异git diff --staged
。并运行您拥有的任何测试,以确保冲突解决方案不会覆盖您实际需要的master
上的更改。