1

似乎 git 拒绝在我的远程存储库上自动执行 gc 命令。在大约一个月内,由于 .pack 文件,存储库扩大到大约 6GB。我认为这是变量 gc.auto 的问题-如何在远程存储库上设置此变量,或者如何在该存储库上手动运行 git-gc 命令?

4

2 回答 2

0

您必须登录托管远程存储库的框,然后只需键入

git gc

在命令行上。

关于gc.auto文档说:

gc.auto
当存储库中的松散对象大约超过这么多时, git gc --auto 将打包它们。一些 Porcelain 命令不时使用此命令执行轻量级垃圾收集。默认值为 6700。将此设置为 0 将禁用它。

但是,您正在谈论.pack文件。似乎还有另一种选择:

gc.autopacklimit
当存储库中有多个没有用 *.keep 文件标记的包时, git gc --auto 将它们合并到一个更大的包中。默认值为 50。将此设置为 0 将禁用它。

请注意,这gc.autopacklimit适用于包装的数量,而不是它们的大小。也许你可以gc使用这些来调整行为......

于 2012-09-19T13:31:57.067 回答
0

注意:如果您的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 时不应在只有一包时触发重新打包,但代码计数不佳并且这样做了。

于 2016-07-18T11:42:27.943 回答