git - 删除了大文件,但checkout和.pack文件仍然很大

时间:2009-05-14 04:12:11

标签: git

我意外地将一堆大图像交给了一个git repo,它让一些东西慢慢爬行。我删除了图像,但结帐仍然需要永远,.git文件是300 + MB。看起来.pack文件非常庞大。

有没有办法清理它?

感谢

1 个答案:

答案 0 :(得分:4)

如果您进行了这样的提交但没有将更改推送到任何其他存储库,那么使用git-rebase或更强大的git-filter-branch很容易将其删除。但是,听起来你已经将这些大文件推到了上游。

如果这些更改已经在许多不同的存储库之间共享,特别是那些已经应用了进一步工作的存储库,那么这可能很难在不造成中断的情况下进行清理。如果尚未广泛共享更改,则可以使用git-filter-branch之类的内容来处理“主”存储库(无论哪个)以删除大文件。然后,将旧的主存储库替换为新制作的存储库,并从该点继续。您可能需要小心地将这个新的主存储库中的更改拖到现有的存储库中,或者只是丢弃它们并创建一个新的克隆。