其呈交哈希使用Git恢复撤消合并推?(Which commit hash to undo a pus

2019-09-19 19:17发布

我合并公测分支到主分支。 我推到原点。 我现在想主人还因为它在本地和远程是合并前。

一个好的答案撤消合并一个已经被推建议

git revert -m 1 commit_hash

如果这确实是要走的路,我怎么能确定 我不成功试图返回的哈希合并基础 :

$ 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

我已经研究分支的两个混帐日志和gitk引渡,但他们是很长,我有足够的我解释的不确定性感到我应该寻求作出也许更大的混乱之前的援助。 Beta版是由这是从主衍生V2的。 已经有来自主一些合并到v2和测试一路走来,我已经把新的分支上最新与主。 从公测的方向合并到主是一个错误,我想纠正。

一旦我做决定汇合点,如果我合并真的应该在公测后的分支上找到主人所做的任何提交,什么是他们搬过来的最好方法?

Answer 1:

你需要找到合并的提交, git merge-base告诉你的承诺,你可以做合并。 它基本上是最后一次提交的这两个分支存在。 合并犯只存在于你的主分支,除非你创建的合并后,一个新的分支,但在这里,这是不相关的。 :)

要找到合并提交尝试: git log master ^beta --ancestry-path --merges

所需要提交的是最后提交。

但是,请在Linus的读了写上去: http://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt



Answer 2:

另外,也要看看http://sethrobertson.github.com/GitFixUm/这将引导您完成几乎所有的git的问题,包括推动合并。 然而......推合并有没有简单的解决方案。



文章来源: Which commit hash to undo a pushed merge using git-revert?