git revert commit-hash-value alone won’t work. -m must be specified, and I’m pretty confused about it.
See details:
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:
In this situation, git revert 4cb43c6 -m 1 will get you the tree as it was in 336a48b, and git revert 4cb43c6 -m 2 will reinstate the tree as it was in b75a5d7..
what is parent number?
links:
https://git-scm.com/blog/2010/03/02/undoing-merges.html
http://www.gitguys.com/topics/git-object-commit/
revert vs reset
http://yijiebuyi.com/blog/8f985d539566d0bf3b804df6be4e0c90.html
http://blog.youkuaiyun.com/hudashi/article/details/7664460