Git删除功能但保留其他分支

时间:2017-10-18 15:39:34

标签: git

我在线性提交历史记录中有一堆提交。在某些时候,我添加了一个对测试有用但不应该在生产中的功能。我现在想拆分一个具有该功能的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的回复。

这是最好的方法吗?我缺少哪些更容易的东西?

1 个答案:

答案 0 :(得分:1)

我不确定我这样做的方式会更容易,但我更喜欢它留下历史的方式。

您可以对reorder the commits执行交互式rebase,将测试提交放在首位。

然后,您可以从主服务器创建一个新的测试分支,现在该代码已经提交了。

然后你可以重新命名你的主人或只是重置指针,从主分支中删除那个顶级提交。