删除从另一个分支完成的所有提交/合并

时间:2014-10-07 04:31:34

标签: git version-control git-branch

如何删除对分支进行的所有合并。我并不是在谈论恢复单一合并。

详细了解详情。我在两个独立的分支机构工作,非常密切相关。分支"工具"和分支"功能"。分支"功能"依赖于分支"工具"中的特定工具。因此,在项目的整个生命周期中,我合并了来自" tools"分支到#34;功能"科。 (从不相反

由于该功能接近它的开发结束,我们决定继续前进并制作"功能"单独进入即将发布的版本。 "工具"还没有被发布,所以我们为#34; feature"提供了一些代码。没有"工具"工作。但是"工具"仍然在"功能"。如何删除分支"工具"?所做的所有提交或合并?

我在考虑使用git-rebase -i,但是如果没有足够的详细信息,我可以通过太多的提交来删除。还有另一种方法吗?

--->Master--\  #Feature Branch Created from Master, and Master merged into Tools.
             \
--->--->Tools \---------\------\------\-------\---->--------->
                         \      \      \       \
        Feature |---------\------\------\-------\--->[Finished]

有没有办法这样做,其中B = Feature-Branch和A = Tools-Branch git rebase(B-A) 任何帮助都会被批准。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要分两个阶段执行此操作:

  • on branch master git cherry-pick <list of commits in tools that you actually need>
  • git rebase --onto master tools feature(这将删除分支tools中的所有剩余feature次提交,而是使用master上的版本

您可能会有几次猜测确实需要什么,所以要非常熟悉大多数分支管理命令的git reflog--abort标志。 / p>