假设我有一个Git仓库,其中包含大量的树(~60 GiB)和一些历史记录,旧版本包含许多已删除的文件。
现在我想要修剪旧的历史记录,但是不想对修剪点后的所有提交进行rebase,因为每个提交都需要几个小时的时间。
1. 我可以删除第一个要删除的提交对象,希望git gc会删除所有(现在未引用的)较旧的提交吗?还是由于缺少对象而引起恐慌?
2. 我可以使用git replace将要删除的第一个提交替换为虚拟提交,然后调用git gc吗?
3. 是否有其他方法可以就地删除我的旧提交?
现在我想要修剪旧的历史记录,但是不想对修剪点后的所有提交进行rebase,因为每个提交都需要几个小时的时间。
1. 我可以删除第一个要删除的提交对象,希望git gc会删除所有(现在未引用的)较旧的提交吗?还是由于缺少对象而引起恐慌?
2. 我可以使用git replace将要删除的第一个提交替换为虚拟提交,然后调用git gc吗?
3. 是否有其他方法可以就地删除我的旧提交?
git filter-branch
或BFG Repo Cleaner更有效地完成此操作。 - user456814