【发布时间】:2014-02-07 15:52:05
【问题描述】:
假设我有一个这样的存储库:
I --- C --- M master
\ /
`- A -´ topic
其中M 是将topic 合并到master 中的合并提交。
后来我在C 中发现了一个错误,所以我在master 分支上的M 之上进行了修复:
I --- C --- M --- C1 master
\ /
`- A -´ topic
但理想情况下,我希望历史看起来像这样:
I --- C --- C1 --- M master
\ /
`- A --------´ topic
如何重写历史记录,以便C1 出现在合并M 之前?
我可以删除M,应用C1 制作的补丁,然后再次将topic 合并到master,再次解决所有冲突,但我想避免这种努力,我会如果可能,更愿意保留原始提交信息(作者、日期等),这排除了再次执行 git commit 的可能性。我希望git rebase 可以,但我失败了,-p 和-i 中的一个或两个都失败了。
【问题讨论】:
标签: git git-merge git-rebase revision-history