仓库迁移到Git LFS后部分人员克隆速度大幅变慢问题求助
核心差异说明
你观察到的两种克隆提示差异核心是是否启用了Git LFS的批量下载API:开启批量下载能力时,服务端会一次性返回所有需要的LFS对象压缩包,本地直接做内容过滤解压,所以显示Filtering content;未开启批量下载时,客户端会逐个请求每个LFS对象,因此逐行打印Downloading ...提示,耗时大幅拉长。
问题根因定位
- Git LFS版本过低:低于2.4.0的版本默认未开启批量下载API支持,会强制触发逐个下载逻辑。执行
git lfs version可核对版本,和团队其他正常使用的成员版本做对比即可确认。 - LFS批量下载配置未开启:执行
git config --get lfs.batch,如果返回值为false或者无返回,说明未开启批量下载。 - 并行下载数配置过低:默认LFS并行下载数为3,若被修改为1也会大幅拉长下载时间,执行
git config --get lfs.concurrenttransfers可查看当前配置。 - 网络链路异常:确认两名开发的机器到GitLab LFS存储节点的网络是否走了无效代理、跨网段转发,或者Git配置中
lfs.url被错误设置为外部地址,导致拉取请求绕远路。
修复步骤
- 升级Git LFS到最新稳定版,确保和团队其他正常成员使用的版本一致。
- 全局开启LFS批量下载和合理的并行传输数,执行以下命令:
git config --global lfs.batch true git config --global lfs.concurrenttransfers 8
并行传输数可根据公司内部网络带宽调整,建议不要超过16避免触发服务器限流。
- 若需要进一步加快克隆速度,可开启LFS懒加载,克隆时跳过自动拉取所有LFS对象,仅按需拉取当前工作区需要的文件,克隆命令改为:
git clone --filter=blob:none <仓库地址>
克隆完成后需要对应LFS文件时,执行git lfs pull即可拉取对应文件。 - 排查本地Git代理配置,执行
git config --get http.proxy确认是否有无效代理,若存在可执行git config --global --unset http.proxy删除全局代理,或单独配置LFS不走代理:git config --global lfs.http.proxy ""
内容的提问来源于stack exchange,提问作者Robert Joseph Dacunto
相关产品推荐
相关产品推荐

