我一直在分支机构上构建一个功能(让我们称之为功能1'),我已经多次合并到我的主分支(' master')中。我间歇性地将其他功能分支合并到主服务器中,因此我的合并提交来自' feature1'进入' master'在上周的其他一些提交中有点散布。
我想做什么: 从' feature1'中删除所有合并 - > '主'仿佛他们从来没有发生过。来自其他分支机构的所有其他工作,我想留在' master'不变。
有没有办法删除只来自特定来源的提交?即只是' feature1'分支?
答案 0 :(得分:3)
好吧,如果这只是你需要做的一次,并且合并的数量是可管理的,那么你可以这样做:
git rebase -i <sha1 of master before I started merging evil branch in>
并手动编辑您不想要的合并提交。
我确信有一种更自动化的方式可以使用filter-branch
这样做,但是如果它是一次性的话,你可以使用rebase更快地完成工作。