首先,我必须道歉 - 关于 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 方法是什么?(所有更改都已推送)。