Skip to content

Instantly share code, notes, and snippets.

@trungx
Forked from lifuzu/revert_a_merge.md
Created April 6, 2018 02:50
Show Gist options
  • Save trungx/23bd07baf0b3e633e8c8a1921b4572ad to your computer and use it in GitHub Desktop.
Save trungx/23bd07baf0b3e633e8c8a1921b4572ad to your computer and use it in GitHub Desktop.
revert a merge commit that's already pushed to remote branch

The -m option specifies the parent number. This is because a merge commit has more than one parent, and Git does not know automatically which parent was the mainline, and which parent was the branch you want to un-merge.

When you view a merge commit in the output of git log, you will see its parents listed on the line that begins with Merge:

commit 8f937c683929b08379097828c8a04350b9b8e183
Merge: 8989ee0 7c6b236
Author: Ben James <[email protected]>
Date:   Wed Aug 17 22:49:41 2011 +0100

Merge branch 'gh-pages'

Conflicts:
    README

In this situation, git revert 8f937c6 -m 1 will get you the tree as it was in 8989ee0, and git revert -m 2 will reinstate the tree as it was in 7c6b236.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment