在下图中,您将首先看到真实情况,然后是我想要的解决方案
所以我想撤消从B到A的合并。
问题是所有内容都已经被推送,并且开发继续进行分支C,并且在与B合并之后我也对A进行了新的提交。
是否可以将此git情况更改为第二个图像,或者是“反向提交”是纠正错误的唯一方法?
但我得到的计划看起来并不清楚,这就是为什么我在寻找另一个答案
答案 0 :(得分:2)
Branch C looks like that:
...--a---------M--f--g--h--i--j
\ / ^ ^
b--c--d [A] [C]
^
[B]
First, you should rebase branch C
:
git rebase --onto <sha-of-commit-a> B C
After this operation branch C should look like that:
a--f'--g'--h'--i'--j'
^
[C]
Now is the time to update branch A
:
git checkout A
git reset --hard <sha-of-commit-g'>
That's all. Your repository should look like this merge never happened.