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

Pistos picture Pistos · Mar 7, 2013 · Viewed 15.3k times · Source

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.

Answer

micromoses picture micromoses · Oct 29, 2013

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.