我有几个分支。它们是 master、develop 和几个功能分支。结构是这样的:
master->develop->功能分支
所以我在特性分支中做所有事情,然后我合并到开发分支中,一旦我完成了程序,我通过将开发分支合并到主分支来发布最终版本。
我的问题是在我的历史上,我将一个功能分支合并到主分支而不是开发分支。如何编辑该合并,以便合并分支在开发而不是 master 上完成。
我有几个分支。它们是 master、develop 和几个功能分支。结构是这样的:
master->develop->功能分支
所以我在特性分支中做所有事情,然后我合并到开发分支中,一旦我完成了程序,我通过将开发分支合并到主分支来发布最终版本。
我的问题是在我的历史上,我将一个功能分支合并到主分支而不是开发分支。如何编辑该合并,以便合并分支在开发而不是 master 上完成。
我认为您可以完全重写历史。
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
大量内容。
免责声明:我不负责射击自己或其他任何人的脚。