.gitattributes merge driver is not used

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:

<<<<<<< HEAD
>>>>>>> origin/master

What am I doing wrong?

  • how to merging works with git
  • Why doesn't git merge the conflict-free changes automatically into locally modified files?
  • How to keep the conflict resolutions performed during a git rebase
  • How can Jenkins list merge request titles from Gitlab in build report
  • git merge changes both local and remote branch
  • How do I manage merging and rebasing in git?
  • Does GIT merges based on datetime?
  • How to determine if a git merge was the wrong way
  • One Solution collect form web for “.gitattributes merge driver is not used”

    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
    Git Baby is a git and github fan, let's start git clone.