简单的问题是,我试图在一台有配额的机器上运行git gc
。在gc之前,我大约有18gb的使用量,几乎所有这些都是我克隆的git存储库。我的磁盘限制是25GB。在git gc
操作期间,有足够的临时文件写入磁盘以达到我的限制,从而导致git gc
操作失败。
我可以在失败的操作之后删除.git/objects/pack/tmp_pack_*
并恢复到18gb的使用量,但我真的很想真正完成git gc
并回收一点性能。
是否有一些奇特的选项(或一系列其他git命令)可以使用,而不需要首先将大于7gb的临时文件写入磁盘?
最佳答案
gc
的哪个部分对您很重要?您可以尝试分别运行git-prune
和git-repack
部分。使用git-prune
,确保并使用--expire
选项指定截止日期。如果你的回购协议中有大量的松散对象,那么先把它们放在一边会很有帮助。
使用git-repack
,您可能会弄乱深度和窗口设置,以获得足够小的空间来运行。
*我并没有假装完全理解所涉及的所有问题,但是我注意到prune是在git gc代码中的重新打包之后进行的。