Search code examples
gitgit-merge

git merge, keep both


For merging I use this to "keep mine"

git merge -X ours foo

and this for "keep theirs"

git merge -X theirs foo

However on my latest merge it looks best to keep both sides. Does Git have a "strategy" for this, to avoid manually editing the file?


Solution

  • There is no 'merge strategy' for resolving these conflicts.

    However, if you truly want a conflict like:

    <<<< ours
    Foo
    =========
    Bar 
    >>>> theirs
    

    to resolve to

    Foo
    Bar
    

    then you can configure the 'merge driver'. From the gitattributes man page:

    union

    Run 3-way file level merge for text files, but take lines from both versions, instead of leaving conflict markers. This tends to leave the added lines in the resulting file in random order and the user should verify the result. Do not use this if you do not understand the implications.

    Add a line to .gitattributes to use this:

    *.whatever merge=union