Git 如何删除合并提交
在下图中,您将首先看到真实情况,然后是我想要的解决方案 所以我想撤销从B到A的合并 问题是,所有的事情都已经完成了,分支C的开发也在继续,而且在将a与B合并后,我在a上做了一个新的提交 是否可以将此git情况更改为第二个映像,或者“反向提交”是纠正错误的唯一方法 我做了什么?Git 如何删除合并提交,git,workflow,Git,Workflow,在下图中,您将首先看到真实情况,然后是我想要的解决方案 所以我想撤销从B到A的合并 问题是,所有的事情都已经完成了,分支C的开发也在继续,而且在将a与B合并后,我在a上做了一个新的提交 是否可以将此git情况更改为第二个映像,或者“反向提交”是纠正错误的唯一方法 我做了什么? 显示用于合并的提交 重新设置分支C在来自 强制推动C上的rebase以更改远程分支 但是我得到的结果方案看起来不清楚,这就是为什么我在寻找另一个答案,分支C看起来是这样的: ...--a---------M--f--
- 显示用于合并的提交
- 重新设置分支C在来自
- 强制推动C上的rebase以更改远程分支
但是我得到的结果方案看起来不清楚,这就是为什么我在寻找另一个答案,分支C看起来是这样的:
...--a---------M--f--g--h--i--j
\ / ^ ^
b--c--d [A] [C]
^
[B]
a--f'--g'--h'--i'--j'
^
[C]
首先,您应该重新设置分支C
:
git rebase --onto <sha-of-commit-a> B C
现在是更新分支A
的时候了:
git checkout A
git reset --hard <sha-of-commit-g'>
git签出A
git reset——很难如果您刚刚编辑的“我做了什么”部分是您的解决方案,您应该将其从问题中编辑出来,并将其作为答案发布。@DaveZych这不是我要寻找的答案,我做了另一个editgreat!我在一个示例git存储库上测试了这一点,它确实起了作用!但我不会在“真实”存储库中这样做,因为自从我注意到这一点以来,已经有太多的事情发生了。