我目前正在使用旧版代码库,并且git GUI工具的性能存在问题。
我想它的发生是因为项目一开始就有奇怪的提交树。
如何删除a842c15
或1e02e18
提交(它们都没有父母)?
我只需要一点initial
。
答案 0 :(得分:4)
您有多个根。这与孤立的提交不同。不幸的是,有多个根目录,但是Git旨在与它们正确配合使用,它们不会引起性能问题。 Linux内核本身有几个。
删除多余提交的唯一方法是完全重写存储库的整个历史记录,销毁它,并用一个新的,伪造的历史记录替换它,其中不包含不需要的历史记录。您可以通过创建嫁接并通过git filter-branch
运行历史记录来做到这一点。
移植物的确切选择是微妙的。从图表上看,我没有发现明显的选择,因此我不确定我可以建议采用哪种嫁接方式,以使历史记录看起来像您想要的样子。
如果是我,我将有多重根基。我的个人存储库具有更多的根源(可能是20或30个根源),而且我使用的任何工具都不会出现速度慢的问题。
答案 1 :(得分:0)
您只需输入git checkout a842c15
或git checkout 1e02e18
即可迁移到该分支
在该类型之后
git reset --hard HEAD~1
,这将删除提交并前进1。
最后,通过git checkout branch_name