How can I determine the commit hash to undo a pushed merge using git revert?
I merged the beta branch into the master branch. I pushed to origin. I now want master to be as it was prior to the merger both locally and remotely.
A good answer for undoing a merge that was already pushed suggests
git revert -m 1 commit_hash
If this is indeed the way to go, how can I determine commit_hash? I unsuccessfully tried the hash returned by merge-base:
$ git merge-base --all master beta
1f4b949b7ef97abf913ae672e3acd0907abfac1b
$ git revert -m 1 1f4b949b7ef97abf913ae672e3acd0907abfac1b
error: Mainline was specified but commit 1f4b949b7ef97abf913ae672e3acd0907abfac1b is not a merge.
fatal: revert failed
I've examined both git-log and gitk renditions of the branches, but they're very long, and I am uncertain enough of my interpretation to feel I should seek assistance before making a perhaps bigger mess. Beta was derived from v2 which was derived from master. There have been some mergers from master into v2 and beta along the way as I've kept the new branches up-to-date with master. The merger in the direction from beta into master was a mistake I wish to correct.
Once I do determine the merge point, if I find any commits made on master after the merger that really should be on the beta branch, what's the best way to move them over?
log --all --graph --pretty=tformat:'%Cred%h%Creset -%C(yellow)%d%Creset%s %Cgreen(%an %cr)%Creset' --abbrev-commit --date=relative
(I personally alias it), it will display the commits of all the branches and their date, and also where did the merges happen.