删除从特定分支合并的所有提交

时间:2013-03-11 15:07:21

标签: git

我一直在分支机构上构建一个功能(让我们称之为功能1'),我已经多次合并到我的主分支(' master')中。我间歇性地将其他功能分支合并到主服务器中,因此我的合并提交来自' feature1'进入' master'在上周的其他一些提交中有点散布。

我想做什么: 从' feature1'中删除所有合并 - > '主'仿佛他们从来没有发生过。来自其他分支机构的所有其他工作,我想留在' master'不变。

有没有办法删除只来自特定来源的提交?即只是' feature1'分支?

1 个答案:

答案 0 :(得分:3)

好吧,如果这只是你需要做的一次,并且合并的数量是可管理的,那么你可以这样做:

git rebase -i <sha1 of master before I started merging evil branch in>

并手动编辑您不想要的合并提交。

我确信有一种更自动化的方式可以使用filter-branch这样做,但是如果它是一次性的话,你可以使用rebase更快地完成工作。