我在线性提交历史记录中有一堆提交。在某些时候,我添加了一个对测试有用但不应该在生产中的功能。我现在想拆分一个具有该功能的testing
分支,但希望将来可以将testing
重新定位到master
以使其保持最新状态。所以我当前的提交看起来像:
A-B-C-D-E
我的解决方案是向F
添加另一个删除该功能的提交master
。然后创建一个分支testing
并还原提交F
:
# Do work to remove feature
git commit -a -m "F"
git checkout -b testing
git revert master
所以现在我的提交历史如下:
A-B-C-D-E-F (master)
\
F' (testing)
其中F'
是F
的回复。
这是最好的方法吗?我缺少哪些更容易的东西?
答案 0 :(得分:1)
我不确定我这样做的方式会更容易,但我更喜欢它留下历史的方式。
您可以对reorder the commits执行交互式rebase,将测试提交放在首位。
然后,您可以从主服务器创建一个新的测试分支,现在该代码已经提交了。
然后你可以重新命名你的主人或只是重置指针,从主分支中删除那个顶级提交。