背景:我最近将一个相当大的主题分支合并到master
中。几天后,我发现此主题分支包含错误。所以我git revert -m 1 <merge-commit>
了。
问题:现在,我想 checkout 主题分支,并根据当前的master
对它进行基础设置,以便我可以1)修复错误,2)(再次)将已修复的主题分支与master合并。创建新分支,fixedtopic
是容易的部分,但是每次我这样做
git checkout fixedtopic
git rebase master
git决定不愿意重播旧提交,因为它们已经合并到
master
中。取而代之的是,它只是简单地进行了快速的变基。问题:如何使用
fixedtopic
强制将提交重播到rebase
上?我可以吗?我宁愿不使用cherry-pick
,因为它比较麻烦。附加:
git reset
进行合并提交,这不是一个选择,因为我已将母版推送到上游。 master
的新分支并还原我的还原。这样做的原因是,我想使用交互式rebase重写某些主题分支的历史记录。 master
(或基于master
的分支)。 最佳答案
实现此目的的一种方法是交互式地重新建立主题分支的基础,并在分支出master之后重新编写第一个提交的字词(例如,如果分支中有10个提交,则为git rebase -i HEAD~10
)。这将重写主题分支内所有提交的sha。因此,您将能够使用git rebase master
重新建立通常的方式。