Git:如何删除提交的 parent 提交
Git: How to remove commit's parent commit
我使用 BFG 在存储库中执行了一些清理,结果以一些不需要的工件结束。在回购历史的某个时刻,我有以下设置:
... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master
\ /
P -> Q ----------
(both X and Q are Y's parents)
我发现 P 和 Q 现在都是 empty 和 detached 提交。 Y 是一个合并提交,它也是空的(没有更改,只是有一个额外的 parent)。在 C 和 X 之间有很多提交(包括分支和合并,none 与 P->Q "branch".
我想完全删除 P->Q 提交和链接,因为它们根本不包含任何更改。结果如下:
... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master
我在谷歌上搜索过如何使用变基、替换、filter-branch 编辑 parents,但我很难做到这一点(我是新手 git用户)。
运行 git rebase --onto X Z
将 Z 重新应用到 X 上(跳过 y)。
我使用 BFG 在存储库中执行了一些清理,结果以一些不需要的工件结束。在回购历史的某个时刻,我有以下设置:
... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master
\ /
P -> Q ----------
(both X and Q are Y's parents)
我发现 P 和 Q 现在都是 empty 和 detached 提交。 Y 是一个合并提交,它也是空的(没有更改,只是有一个额外的 parent)。在 C 和 X 之间有很多提交(包括分支和合并,none 与 P->Q "branch".
我想完全删除 P->Q 提交和链接,因为它们根本不包含任何更改。结果如下:
... -> A -> B -> C -> ... -> X -> Y -> Z -> ... -> HEAD/master
我在谷歌上搜索过如何使用变基、替换、filter-branch 编辑 parents,但我很难做到这一点(我是新手 git用户)。
运行 git rebase --onto X Z
将 Z 重新应用到 X 上(跳过 y)。