Git:如何删除commit的父提交

时间:2016-02-28 20:50:41

标签: git git-branch git-rewrite-history

我在BFG的存储库中执行了一些清理工作,结果导致了一些不需要的工件。在回购历史中的某个时刻,我有以下设置:

... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master
             \                   /
               P -> Q ----------

(both X and Q are Y's parents)

我发现P和Q现在都是分离提交。 Y是合并提交,也是空的(没有更改,只有一个额外的父级)。在C和X之间有许多提交(包括分支和合并,没有与P-> Q“分支相关的”。

我想完全删除P-> Q提交和链接,因为它们根本不包含任何更改。结果如下:

... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master

我已经开始使用rebase,replace,filter-branch编辑父母,但我很难做到这一点(我是新手git用户)。

1 个答案:

答案 0 :(得分:0)

运行git rebase --onto X Z将Z重新应用到X上(跳过y)。