首先,我必须道歉 - 关于 SO 有很多“如何撤消合并”问题,但我对 git 太陌生了,我真的不明白如何根据我的情况调整解决方案(尽管我相信他们可以)。
我有两个分支,versionA
并且versionB
. 我做了一些更改versionA
并将它们合并到versionB
中,这很好,因为所做的更改versionA
是向前兼容的。然后,我想我一定是不小心合并回versionB
了versionA
,这不好,因为versionB
不向后兼容.versionA
我该如何撤消此操作?
为了让事情更清楚,这就是我所做的:
versionA C--C--C--C'--M2
\ /
\ /
versionB C--M--C--C*
M: merged versionA into versionB. this is fine.
M2: accidentally merged versionB back into versionA
这就是我要的:
versionA C--C--C--C'
\
\
versionB C--M--C--C*
如果我在 Mercurial 上,我会这样做hg rollback
,一切都会好起来的,或者我会hg update C'
在那里为versionA
分支做出未来的提交,尽管这会留下M2
一个死气沉沉的头(因此我更喜欢这种rollback
方法)。
M2
从versionA
分支中清除最后一次提交的 git 方法是什么?(所有更改都已推送)。