3

我一直在一个分支上构建一个功能(我们称之为'feature1'),我已经多次合并到我的主分支('master')中。我已经间歇性地将其他功能分支合并到 master 中,所以我从“feature1”到“master”的合并提交在上周的其他提交中有点分散。

我想要做的:从 'feature1' -> 'master' 中删除所有合并,就好像它们从未发生过一样。来自其他分支的所有其他工作,我想留在'master'中保持不变。

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

4

1 回答 1

3

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

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

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

我确信有一种更自动化的方式来执行此操作filter-branch,但如果它是一次性的,那么只需使用 rebase 就可以更快地完成工作。

于 2013-03-11T16:05:36.007 回答