.gitattributes merge driver is not used

為{幸葍}努か 提交于 2019-12-08 06:57:01

问题


At first, I know this question How do I tell git to always select my local version for conflicted merges on a specific file? but this post doesn't help me and I can't add any comments because of my reputation.

http://git-scm.com/book/en/Customizing-Git-Git-Attributes suggests to set the merge strategy to ours for the path instead of setting a custom merge driver.

What is the benefit and differene of adding a custom merge driver return an exit code 0?

I have a .gitattributes file on my repos top level:

pom.xml merge=ours

But when I merge two branches with changed pom.xml files the merge can't be resolved:

$ 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.

And I get a standard merge conflict result:

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

What am I doing wrong?


回答1:


You can declare a merge driver, but that means you have to define it on the git config, as in ".gitattributes & individual merge strategy for a file":

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

That allows for a merge strategy for a file, or set of files, as opposed to the -s option for git merge strategies, which doesn't require you to define a driver, but which would resolve the conflict for all files (not just for pom.xml)

git merge -s ours


来源:https://stackoverflow.com/questions/22577405/gitattributes-merge-driver-is-not-used

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!