我的git仓库有问题。在过去的几天里,每当我推入服务器时,我都会收到此消息:“自动打包存储库以获得最佳性能”,并且似乎不会消失并返回外壳。
我还尝试签到一个新的分支,然后对我以前的分支进行重新审查,然后做git gc
要删除未使用的历史记录对象,然后进行了推动,但仍会出现此消息。请让我知道我的存储库发生了什么。
答案
简短版本:这意味着它说的话,如果您让它完成,一切都会很好。
在大多数操作中,可能会增加存储库中松动(未包装)对象的数量(包括推送),GIT调用git gc --auto
。如果有足够的松动对象(默认情况下,至少6700),则将调用git repack -d -l
打包它们。如果有太多的单独包装,它也会将它们重新包装成一个。
包装是一个被增压的单个文件,其中包含大量对象。将对象存储在包装中更有效,但是要打包(压缩)对象需要时间,因此Git最初会创建松散的对象,然后时不时地将它们批次包装,通过自动调用git gc --auto
。
If you let Git finish repacking, this won’t happen again for a while. 这确实需要一段时间,特别是如果您有很多大型二进制对象,但如果它正在触发,则表明它可能会大大减少存储库占用的磁盘空间量。gc.auto
。
看man git-gc
(在下面--auto
) 和man git-config
(在下面gc.auto
) 了解更多信息。