Git获取-对象数量大,下载速度慢



当我运行git fetch production从托管在Gitlab上的远程存储库中提取对象时,我在终端中得到了以下内容-

remote: Counting objects: 100% (4895/4895), done.
remote: Compressing objects: 100% (515/515), done.
Receiving objects:  25% (11199/44589), 476.81 MiB | 3.42 MiB/s   

这似乎需要很长时间,因为每个物体看起来都很大。

有趣的是,我完全不知道这些物体是什么;因为我已经仔细检查了我的本地存储库;我所拥有的只是Laravel框架,以及我的自定义代码;没有大包裹。我估计我的存储库的最大大小不应该超过200-300MB。

有什么方法可以解决这个问题吗?它把我逼疯了!

更新:当我写这个问题时,终端抛出了以下内容-

Receiving objects: 100% (44589/44589), 1.14 GiB | 3.39 MiB/s, done.
Resolving deltas: 100% (28324/28324), done.

这些物体的大小似乎从44589个下降到了28324个。有人能帮我弄清楚发生了什么吗?我如何加快我的git提取和git提取速度?

首先,您可以快速列出存储库中的大型对象。

其次,您可以继续并删除存储库的历史中的一些对象(这意味着您当前签出的工作树可能很小,但大型对象可能已经提交,然后被删除,并且在克隆存储库时仍然可以感觉到它们的存在(
您需要使用git filter-repo


在服务器端:

参见GitLab 14.5(2021年11月(

Git获取资源优化

Git获取资源优化

我们改进了Workhorse和Gitaly之间的流量性能,导致git fetch现在使用更少的GitLab服务器资源。

如果在Workhorse和Gitaly之间部署gRPC代理,则此更改可能会导致自管理GitLab出现问题。

如果您在Workhorse和Gitaly之间部署了gRPC代理,Workhorse将无法再进行连接。作为解决方法,请禁用临时workhorse_use_sidechannel功能标志
如果您需要Workhorse和Gitaly之间的代理,请使用TCP代理。

请参阅文档和问题。

最新更新