背景:我最近将一个相当大的主题分支合并到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重写某些主题分支的历史记录。
  • 这是该场景的github要点:https://gist.github.com/JensRantil/6352495请注意,我希望将e8df5ec和ee16464应用于master(或基于master的分支)。
  • 最佳答案

    实现此目的的一种方法是交互式地重新建立主题分支的基础,并在分支出master之后重新编写第一个提交的字词(例如,如果分支中有10个提交,则为git rebase -i HEAD~10)。这将重写主题分支内所有提交的sha。因此,您将能够使用git rebase master重新建立通常的方式。

    07-24 09:45
    查看更多