从本地历史记录中删除 git 合并提交

Delete git merge commit from local history

我的提交历史是这样的:

黄色是主分支,蓝色和紫色是特征分支。提交 0-5 已被推送,提交 6-10 仅在本地提交。

我想撤消合并提交 6 的影响,我的意思是完全删除它,并将 C7 重新路由为 C1 和 C2 的合并。

关于如何实现这一点有什么想法吗?

这不会很容易,因为您需要反复试验,所以最好在执行此操作之前获取您的 git 存储库的(本地)副本。然后尝试这样的事情:

git branch temp <sha-2>
git merge <sha-1>
git merge <sha-5>
git checkout master
git rebase temp
git branch -d temp