我有一系列的提交记录(20+),涉及一个特定的功能。我想将它们从我们的主分支中移除并移到单独的分支中。
在这些提交记录中,有一个标签(rel_2009_07_18
),代表我们最新的稳定版本。因此,在主分支上使用git log rel_2009_07_18
..HEAD可以得到我要移到单独分支的提交记录集合。其中也有一些提交记录应该保留,但它们很少,可以直接挑选。
我查看了git filter-branch,但commit选项提到要保留更改但删除提交,这肯定不是我想要的。我还查看了git rebase,但它也提到要重新应用提交记录到上游分支。
有没有好的方法可以将这些提交记录移到单独的分支中呢?
我不确定这是否是个可行的方案,并且在分布式环境下(虽然只有3个开发者),是否会产生后果。但我可以进行以下操作:
- 将本地的主分支重命名为master_plus_feature(或类似名称)
- 从`rel_2009_07_18`标签检出
- 从此处创建一个新的master分支
- 删除远程分支并从本地重新推送
您有什么想法和建议吗?谢谢!
git push -f
已经发布了,你仍然可以在回退之后强制推送主分支。 - firedev