gitmergeresolutionconflict

How do you see / show a git merge conflict resolution that was done, given a merge commit SHA1?


When you resolve a conflict, then stage the changes, then do a git diff, it shows you two columns of +'s and -'s, one for "ours" and one for "theirs". Given a merge commit in a repo's git history, how do I see that resolution, which was done by someone else? In other instances, I've seen it before (in gitk, I think), but I can't seem to determine it for this SHA1 that I have.


Solution

  • If you know the ref, then git show <MERGE_COMMIT> will show you the resolution done (if any) for the merge commit.

    For log, use git log -p -c or git log -p --cc. From the manpage of git log:

       -c
           With this option, diff output for a merge commit shows the differences from each 
           of the parents to the merge result simultaneously instead of showing pairwise 
           diff between a parent and the result one at a time. Furthermore, it lists only 
           files which were modified from all parents.
    
       --cc
           This flag implies the -c option and further compresses the patch output by 
           omitting uninteresting hunks whose contents in the parents have only two 
           variants and the merge result picks one of them without modification.