我将 beta 分支合并到 master 分支。我推到原点。我现在希望 master 在本地和远程都像合并之前一样。
撤消已推送的合并的一个很好的答案是建议
git revert -m 1 commit_hash
如果这确实是要走的路,我该如何确定commit_hash?我没有成功尝试由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
我已经检查了分支的 git-log 和 gitk 演绎版,但它们很长,而且我对自己的解释不确定,觉得我应该在弄得更大的混乱之前寻求帮助。Beta 源自 v2,v2 源自 master。在此过程中,随着我使新分支与 master 保持同步,从 master 到 v2 和 beta 进行了一些合并。从 beta 到 master 方向的合并是一个我希望纠正的错误。
一旦我确定了合并点,如果我发现合并后在 master 上所做的任何提交确实应该在 beta 分支上,那么将它们移过来的最佳方法是什么?