具有配额的计算机上的git gc

具有配额的计算机上的git gc,git,quota,git-gc,Git,Quota,Git Gc,简单的问题是,我试图在一台有配额的机器上运行git gc。在gc之前,我的使用量大约为18GB,几乎所有这些都是我克隆的git存储库。我的磁盘限制是25GB。在git-gc操作期间,将有足够的临时文件写入磁盘以达到我的限制,从而导致git-gc操作失败 在失败的操作之后,我可以删除.git/objects/pack/tmp\u pack.*,并恢复到18GB的使用率,但我真的希望实际完成git gc,并重新获得一点性能 是否有一些奇特的选项(或一系列其他git命令)可以使用,而不需要先将>7GB

简单的问题是,我试图在一台有配额的机器上运行
git gc
。在gc之前,我的使用量大约为18GB,几乎所有这些都是我克隆的git存储库。我的磁盘限制是25GB。在
git-gc
操作期间,将有足够的临时文件写入磁盘以达到我的限制,从而导致
git-gc
操作失败

在失败的操作之后,我可以删除
.git/objects/pack/tmp\u pack.*
,并恢复到18GB的使用率,但我真的希望实际完成
git gc
,并重新获得一点性能


是否有一些奇特的选项(或一系列其他git命令)可以使用,而不需要先将>7GB的临时文件写入磁盘?

看起来最好的解决方案是要求它提供更大的配额,尽管我仍然有兴趣听到解决方法。今天他们觉得很慷慨,但明天…:)

gc的哪一部分对您很重要?您可以尝试分别运行
git prune
git repack
部分。使用
git prune
,确保使用
--expire
选项指定截止日期。如果你的回购协议中有大量的松散对象,那么先把它们清理掉会很有帮助*

使用
git-repack
,您可能会弄乱深度和窗口设置,以获得足够小的内容,以便在现有空间内运行


*我并不假装完全理解所涉及的所有问题,但我确实注意到在git gc代码中重新打包之后才进行修剪。

git prune
是一个很好的建议,很好的调用Jefromi

你可以做的另一件事是压缩你的其他文件<代码>git gc;减压


7z
获得了惊人的压缩,但不会保留硬链接和Unix所有者/组IIRC。如果你有一个配额,这些文件可能都属于你的帐户,所以不用担心第一个分数。但是最安全的是
tarc--lzma
(如果你有),或者干脆
tarczf
或者
cjf
。如果你有很多小文件,那么块大小的外部碎片可能会很重要。

你运行的是什么版本的git?