Git repository clone失败出现Premature end of chunk coded报错如何解决
Git repository clone failed. Premature end of chunk coded message body: closing chunk expected
该报错的本质是Git通过HTTP/HTTPS协议克隆仓库时,分块编码的传输数据被提前截断,缺少预期的结束标识,无法完成完整的仓库数据拉取。
报错产生原因
- 网络连接不稳定:克隆过程中出现网络波动、临时中断,导致部分分块数据丢失,响应包不完整
- 代理或防火墙拦截:本地代理配置错误、公网防火墙、公司内网网关对传输数据做了拦截或截断,导致数据传输提前终止
- 远程服务端异常:Git托管平台服务临时故障、带宽不足,无法返回完整的仓库数据
- 本地Git配置不合理:Git默认的HTTP传输缓冲区过小,克隆大体积仓库时超出限制导致数据截断
- 仓库体积过大:超大仓库单次拉取数据量过高,超出网络传输的单次负载阈值
排查与解决方法
1. 排查网络连通性
- 先访问对应Git托管平台的网页,确认当前网络可以正常连接平台服务
- 切换更稳定的网络环境重试,比如Wi-Fi更换为有线网络、普通公网更换为手机热点,排除当前网络波动的影响
- 若克隆的是海外仓库,可调整网络线路后再重试
2. 处理代理与防火墙拦截
- 执行命令查看当前Git的全局代理配置:
git config --global --get http.proxy - 若存在错误的代理配置,执行命令清除全局代理:
git config --global --unset http.proxy
如需使用代理可重新配置正确的代理地址 - 临时关闭本地防火墙、杀毒软件的网络拦截功能后重试;公司内网环境可联系IT确认是否对Git传输做了速率、数据大小限制
3. 调整Git传输配置适配大仓库
针对大体积仓库克隆的场景,可修改Git的HTTP传输相关配置:
- 调大HTTP传输缓冲区(以下示例设置为500M,可根据仓库大小自行调整数值):
git config --global http.postBuffer 524288000 - 关闭HTTP分块编码校验:
git config --global http.chunked false - 采用浅克隆方式拉取,仅拉取最近1次提交减少传输数据量:
git clone --depth 1 你的仓库地址
后续需要完整历史提交时,执行git fetch --unshallow即可补全历史记录
4. 切换传输协议重试
如果当前使用HTTPS协议克隆报错,可更换为SSH协议重新克隆,反之即可,排除单协议传输的故障问题
5. 确认远程服务端状态
若以上操作均无效,可确认对应Git托管平台的服务运行状态,等待服务恢复后再重试即可
内容的提问来源于stack exchange,提问作者ritika020
相关产品推荐
相关产品推荐

