似乎 git 拒绝在我的远程存储库上自动执行 gc 命令。在大约一个月内,由于 .pack 文件,存储库扩大到大约 6GB。我认为这是变量 gc.auto 的问题-如何在远程存储库上设置此变量,或者如何在该存储库上手动运行 git-gc 命令?
2 回答
您必须登录托管远程存储库的框,然后只需键入
git gc
在命令行上。
关于gc.auto
:文档说:
gc.auto
当存储库中的松散对象大约超过这么多时, git gc --auto 将打包它们。一些 Porcelain 命令不时使用此命令执行轻量级垃圾收集。默认值为 6700。将此设置为 0 将禁用它。
但是,您正在谈论.pack
文件。似乎还有另一种选择:
gc.autopacklimit
当存储库中有多个没有用 *.keep 文件标记的包时, git gc --auto 将它们合并到一个更大的包中。默认值为 50。将此设置为 0 将禁用它。
请注意,这gc.autopacklimit
适用于包装的数量,而不是它们的大小。也许你可以gc
使用这些来调整行为......
注意:如果您的repo只有一个包文件,git gc
则不应在git config gc.autoPackLimit 1
. 然而确实如此。
也就是说,它一直持续到 Git 2.10(2016 年第三季度)。
请参阅Eric Wong ( )的commit 5f4e3bf(2016 年 6 月 25 日) 。(由Junio C Hamano 合并 -- --在提交 97865e8中,2016 年 7 月 13 日)ele828
gitster
gc
:修复一个错误gc.autoPackLimit
这与文档相匹配,并允许gc.autoPackLimit=1
维护单个包,而无需在每次 " git gc --auto
" 调用时尝试重新打包。
"
gc.autoPackLimit
" 设置为 1 时不应在只有一包时触发重新打包,但代码计数不佳并且这样做了。