是不是有必要做一个有选择性的" git checkout --ours"只考虑我们的"在冲突文件的冲突区域中

时间:2015-03-12 03:50:49

标签: git

我试图将分支与pom.xml文件合并,这些文件通常只与版本号中的更改冲突,但通常会在其中发生其他非冲突的更改。如果我使用" git checkout --ours"即使没有冲突的更改也会被忽略,是否有针对此的解决方法?

我的意思是:

<xml>
   <thing>
<<<<<<< HEAD
        <version>1.1.0</version>
=======
        <version>1.2.0</version>
>>>>>>> origin/remote_branch
    </thing>
    <other>
      <!-- merged changes -->
    </other>
</xml>

我希望通过&#34; git checkout --ours&#34;

来实现
<xml>
   <thing>
        <version>1.1.0</version>
    </thing>
    <other>
      <!-- merged changes -->
    </other>
</xml>

这可能吗?

1 个答案:

答案 0 :(得分:3)

应该使用合并策略选项:git merge branch -X ours

ours:
  

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

这是递归合并策略的一个选项。

如果您只想将该选项应用于某些文件,同时保留其他文件的默认合并分辨率,则可以使用custom merge driver在这些特定文件上调用git merge-file --ours。你declare it in the config file

该合并驱动程序与.gitattributes

中的文件相关联
pom.xml merge=keepours