不使用.gitattributes合并驱动程序

时间:2014-03-22 12:10:06

标签: git merge git-merge gitattributes

首先,我知道这个问题How do I tell git to always select my local version for conflicted merges on a specific file?,但这篇文章对我没有帮助,因为我的声誉,我无法添加任何评论。

http://git-scm.com/book/en/Customizing-Git-Git-Attributes建议为路径设置合并策略,而不是设置自定义合并驱动程序。

添加自定义合并驱动程序的好处和不同之处是返回退出代码0?

我的repos顶层有一个.gitattributes文件:

pom.xml merge=ours

但是当我将两个分支与已更改的pom.xml文件合并时,合并无法解决:

$ git merge origin/master
Auto-merging pom.xml
CONFLICT (content): Merge conflict in pom.xml
Automatic merge failed; fix conflicts and then commit the result.

我得到了标准的合并冲突结果:

<pom>
<<<<<<< HEAD
    <version>0.88-SNAPSHOT</version>
=======
    <version>0.87.0</version>
>>>>>>> origin/master
</pom>

我做错了什么?

1 个答案:

答案 0 :(得分:3)

您可以声明合并驱动程序,但这意味着您必须在git配置中定义它,如“.gitattributes & individual merge strategy for a file”:

[merge "ours"]
    name = "Keep ours merge"
    driver = true

这允许对一个文件或一组文件进行合并策略,而不是git merge strategies -s选项。 t要求您定义一个驱动程序,但这将解决所有文件的冲突(不仅仅是pom.xml

git merge -s ours