Git以自定义方式使用我们和他们的合并

时间:2017-10-13 01:53:38

标签: git merge

我想在分支主机上合并分支发布,这样我就可以解决所有冲突,而不是主人(我们的),除了我想要解决的特定文件夹(支持发布(他们的))。这样做有干净的方法吗?

基本上我正在尝试解决之前合并中搞砸的事情。

1 个答案:

答案 0 :(得分:2)

我们假设有三个文件夹foo/bar/fizz/,您赞成release fizzmaster其余的{1}}。

#you've encountered the conflicts during a merge
git checkout master -- . ':!fizz/'
git checkout release -- fizz/
git commit

. ':!fizz/'表示除fizz/以外的所有内容。因此foo/bar/ master已签出。同样,fizz/的{​​{1}}已签出。最后,release完成了合并过程。

更新

正如@torek的评论所说,上面的步骤适用于子文件夹的git commit(请注意,没有-s ours)。它忽略了"他们的所有变化"。如果您想要的是仅针对冲突的部分自动选择我们的更改,并且如果合并是可以的,那么它应该使用类似-s theirsgit merge -X ours的内容,并且不要运行答案中的命令。正如@torek所说,git merge -X theirs正在工作。