我的 git 存储库有问题。在过去的几天里,每当我向服务器推送时,我都会收到此消息:“自动打包存储库以获得最佳性能”,并且它似乎不会消失并返回 shell。
我还尝试签出一个新分支,然后对我之前的分支进行变基,然后执行git gc
删除未使用的历史对象,然后进行推送,但仍然出现此消息。请让我知道我的仓库发生了什么事。
简短版本:它意味着它所说的,如果你让它结束,一切都会好起来的。
在大多数可能会增加存储库中松散(未打包)对象数量(包括推送)的操作期间,Git 会调用git gc --auto
。如果有足够的松散对象(默认情况下,至少 6700),它将调用git repack -d -l
打包它们。如果单独的包太多,它也会将它们重新打包成一个。
包是增量压缩的单个文件,包含大量对象。将对象存储在包中更有效,但是打包(压缩)对象需要时间,因此 Git 最初创建松散对象,然后通过自动调用git gc --auto
.
如果你让 Git 完成重新打包,这种情况暂时就不会再发生了。这确实需要一段时间,特别是如果您有很多大型二进制对象,但如果它正在触发,则表明它可能会大大减少存储库占用的磁盘空间量。如果你确实不希望发生这种情况,可以更改配置参数gc.auto
。如果将其增加到远大于 6700,则发生的频率会降低,但发生时需要的时间会更长。如果你减少它,它仍然需要进行当前的重新打包,但随后它会更频繁地发生并更快地完成。如果将其设置为 0,则会禁用自动重新打包。
See man git-gc
(under --auto
) and man git-config
(under gc.auto
) 了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)