Search code examples
gitgit-merge

Restart/undo conflict resolution in a single file


In a larger git merge with several conflicting files, I incorrectly marked a file as resolved (using git add FILE after some editing)

Now I'd like to undo my conflict resolution attempt and start over resolving that file.

How can I do that?


Solution

  • Use git checkout with flag --merge (short version -m):

    git checkout --merge FILE
    

    This restores the unresolved state, including all information about parent and merge base, which allows restarting the resolution.

    This command can also be used to "undo" automatic merge conflict resolution, if rerere is enabled in your git config. This is especially useful with enabled rerere.autoUpdate after it records incorrect merge conflict resolution and you notice too late.

    Found the solution here: http://gitster.livejournal.com/43665.html