我的 git 存储库有问题。在过去的几天里,每当我向服务器推送时,我都会收到这条消息:“自动打包存储库以获得最佳性能”,它似乎并没有消失并返回 shell。
我还尝试 checkout 到一个新分支,然后在我以前的分支上进行 rebase ,然后执行 git gc
删除未使用的历史对象,然后进行推送,但仍然出现此消息。请让我知道我的 repo 发生了什么。
最佳答案
简而言之:就是说到做到,如果你让它完成,一切都会好起来的。
在大多数可能会增加存储库中松散(未打包)对象数量的操作(包括推送)中,Git 调用 git gc --auto
。如果有足够多的松散对象(默认情况下,至少 6700 个),它将调用 git repack -d -l
来打包它们。如果有太多单独的包,它也会将它们重新打包成一个。
包是增量压缩的单个文件,包含大量对象。将对象打包存储效率更高,但打包(压缩)对象需要时间,因此 Git 最初创建松散的对象,然后不时地通过自动调用 git gc --auto将它们打包
.
如果让 Git 完成重新打包,暂时不会再发生这种情况。确实可能需要一段时间,尤其是当您有很多大型二进制对象时,但如果触发,那么这表明它可能会大大减少存储库占用的磁盘空间量。如果您真的不希望它发生,您可以更改配置参数 gc.auto
。如果将它增加到比 6700 大得多的值,它发生的频率就会降低,但发生的时间会更长。如果你减少它,它仍然需要做你当前的重新包装,但随后它会更频繁地发生并更快地完成。如果将其设置为 0,它将禁用自动重新打包。
参见man git-gc
(在--auto
下)和man git-config
(在gc.auto下)
) 了解更多信息。
关于git - "Auto packing the repository for optimum performance"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633981/