gitea clone工程报错

📅 2026/7/6 12:43:59
gitea clone工程报错
[rootlocalhost tmp]# git clone -b main https://5f4ce952a596af20f8d9e8e5528d735a4f17b32cgitea.super-study.com/ys-study/gomall.git 正克隆到 gomall... remote: Enumerating objects: 11721, done. remote: Counting objects: 100% (11721/11721), done. 错误RPC 失败。curl 18 transfer closed with outstanding read data remaining 错误收到了 1 字节长度的头信息3% (2048/8901) 致命错误过早的文件结束符EOF (7299/8901) 致命这个错误是Git 传输过程中数据被截断典型原因是HTTP 缓冲区不足或网络不稳定/代理限制。以下是排查和解决方案快速修复按优先级尝试方案 1增大 Git HTTP 缓冲区最常见bash# 全局配置增大 post 缓冲区到 500MB git config --global http.postBuffer 524288000 # 同时增大低速度限制和时间防止慢连接被中断 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999然后重新克隆bashrm -rf gomall git clone -b main https://5f4ce952a596af20f8d9e8e5528d735a4f17b32cgitea.super-study.com/ys-study/gomall.git方案 2使用 SSH 代替 HTTPSSSH 协议更稳定不受 HTTP 缓冲区限制bash# 1. 生成 SSH 密钥如果没有 ssh-keygen -t ed25519 -C jenkinslocalhost # 2. 将公钥添加到 Gitea 账户设置 → SSH Keys cat ~/.ssh/id_ed25519.pub # 3. 使用 SSH 地址克隆 git clone -b main gitgitea.super-study.com:ys-study/gomall.git方案 3浅克隆 后续拉取完整历史如果仓库很大先浅克隆再补充历史bash# 只克隆最新提交 git clone --depth 1 -b main https://5f4ce952a596af20f8d9e8e5528d735a4f17b32cgitea.super-study.com/ys-study/gomall.git cd gomall # 之后如果需要完整历史再取消浅克隆 git fetch --unshallow方案 4检查网络/代理问题bash# 测试到 Gitea 的网络稳定性 curl -o /dev/null -w %{http_code} %{size_download} %{time_total}\n \ https://gitea.super-study.com/ys-study/gomall.git/info/refs?servicegit-upload-pack # 如果有代理检查代理是否限制大文件传输 env | grep -i proxy方案 5调整 Gitea 服务端配置如果你有权限如果是自建的 Gitea检查服务端限制ini# app.ini 中增大限制 [server] LFS_START_SERVER true MAX_UPLOAD_FILE_SIZE 104857600 ; 100MB按需调整 [git.timeout] MIGRATE 600 CLONE 600 PULL 300 GC 60Jenkins 中的修复如果是 Jenkins 构建失败在Jenkins Job 配置的Additional Behaviours中添加plainName: http.postBuffer Value: 524288000或在 Jenkins 节点执行bashsudo -u jenkins git config --global http.postBuffer 524288000根本原因表格原因说明仓库体积大100MBHTTP 默认缓冲区 1MB 不够网络不稳定/带宽低传输中断导致 EOF反向代理Nginx/Apache限制超时或缓冲区设置太小Gitea 服务端响应超时大仓库打包索引耗时过长请先执行方案 1增大缓冲区这是解决curl 18 transfer closed最有效的办法。如果仍失败请告诉我仓库大概多大curl测试的返回结果是否有 Nginx/Apache 反向代理这是 Jenkins 构建节点还是本地手动测试错误fetch-pack无效的 index-pack 输出