1

我有几个分支。它们是 master、develop 和几个功能分支。结构是这样的:

master->develop->功能分支

所以我在特性分支中做所有事情,然后我合并到开发分支中,一旦我完成了程序,我通过将开发分支合并到主分支来发布最终版本。

我的问题是在我的历史上,我将一个功能分支合并到主分支而不是开发分支。如何编辑该合并,以便合并分支在开发而不是 master 上完成。

4

1 回答 1

0

我认为您可以完全重写历史。

git branch rebase-from ffffff       # 1st commit on master after the wrong merge
git branch last-good rebase-from^^  # commit before the wrong merge on master
git rebase --onto last-good rebase-from master

这将消除来自 master 的错误合并提交。如果您在旧 master 上有任何标签,它们仍将指向操作后的原始提交,因此旧 master 可能会保持可见,直到其上的最后一个标签。如果您也想移动标签,您必须与曾经克隆过您的存储库的每个人进行良好的沟通。阅读git help tag关于该主题的讨论。

在开始之前阅读git help rebase大量内容。

免责声明:我不负责射击自己或其他任何人的脚。

于 2013-09-11T22:25:38.643 回答