Reputation: 9538
I've merged two branches. Got lot's of conflicts. Resolved them all. Now I'm not sure, maybe I've made an error during conflict resolution. And I don't see no another way to check is it true — just run merge again, and check conflicts one by one.
This means I need to create one more branch to store results of my merge, right?
Can I avoid it? Maybe it's possible to get all conflicting files with all these <<<<<<
, ======
, >>>>>>
from somewhere in git, without running merge once again?
Upvotes: 14
Views: 3509
Reputation: 28951
Yes, it is trivial. First of all, you need find sha1 id of the merge commit using git log
. When you do the next:
git checkout <sha1>^1
git merge <sha1>^2
you will be in a headless state. ^n
means n-th parent of a commit. So, no branches are created. You could resolve conflicts again more carefully and then
git diff HEAD..<sha1>
to see if there are any differences in the conflict resolutions.
BTW, branch in a git just a human-friendly name for a sha1 of a commit, so don't afraid to create them as much as you wish.
PS: If you work in Windows, ^
symbol in command line is special, you need to double it or quote command line arguments.
Upvotes: 2
Reputation: 44347
If you want to look at what the merge did you can do
git show <hash-of-merge-commit>
If you want to redo the entire merge you do
git checkout <branch-that-you-merged-to>
git reset --hard <hash-of-the-commit-just-before-the-merge>
git merge <branch-that-you-merged-in>
If you want to redo the merge and then compare the second merge to the first merge (to consider if it was better) you can do:
git checkout <branch-that-you-merged-to>
git rev-parse HEAD
This gives you the hash of the current commit. Note it down. Then do
git reset --hard <hash-of-the-commit-just-before-the-merge>
git merge <branch-that-you-merged-in>
Finish the merge, then do this to compare the merges
git difftool <hash-of-commit-noted-above>
If you felt that the original merge was better, you can do
git reset --hard <hash-of-commit-noted-above>
Upvotes: 4