简单的问题,我正在尝试在配额的计算机上运行git gc
。 Pre-gc,我的使用率约为18GB,几乎所有这些都是我克隆的git存储库。我的磁盘限制为25GB。在git gc
操作期间,足够的临时文件将写入磁盘以达到我的极限,从而导致git gc
操作失败。
我可以在失败的操作后删除.git/objects/pack/tmp_pack_*
并恢复到18GB的使用率,但我真的想完成git gc
并重新获得一点性能。
我可以使用哪些花哨选项(或一系列其他git命令),而不涉及首先将> 7GB的临时文件写入磁盘?
答案 0 :(得分:2)
gc
的哪一部分对您很重要?您可以尝试分别运行git-prune
和git-repack
部分。使用git-prune
时,请确保使用--expire
选项指定截止日期。如果您的仓库中有大量松散的物体,首先将它们放在一边会有所帮助。*
使用git-repack
,你可能会弄乱深度和窗口设置,以获得足够小的东西在你拥有的空间内运行。
*我不会假装完全理解所涉及的所有问题,但我注意到在重新包装git-gc代码后,修剪。
答案 1 :(得分:0)
看起来最好的解决方案是让IT获得更大的配额,不过我仍然有兴趣听取解决方法。今天他们感到很慷慨,但明天...... :)
答案 2 :(得分:0)
git prune
是一个很好的建议,很好的称呼Jefromi。
你可以做的另一件事是压缩你的其他文件; git gc
;解压缩。
7z
得到惊人的压缩,但不会保留硬链接和Unix所有者/组,IIRC。如果您有配额,这些文件可能全部归您的帐户所有,因此不必担心第一个分数。但最安全的是tar c --lzma
如果你有,或只是tar czf
或cjf
。如果你有很多小文件,那么umm,外部(?)碎片可能会非常重要。