35人参与 • 2026-01-06 • 其他编程
在使用 git 推送包含较大编译产物的项目时,你是否遇到过 http 413 request entity too large 错误?这通常并不是 git 的问题,而是 web 服务器(如 nginx)拒绝接收大体积请求。本文将通过一个完整案例,演示如何使用 curl 工具验证服务器限制,最终通过宝塔面板修改 nginx 配置解决问题,实现大文件 git 推送成功。适用于使用 gitblit、gitea 或任何基于 nginx 部署的私有 git 服务环境。
在使用 git 推送一个包含编译产物的仓库时,推送失败,报错如下:
error: rpc failed; http 413 curl 22 the requested url returned error: 413 send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly
git gui (sourcetree) 中显示:
post git-receive-pack (287021804 bytes) error: rpc failed; http 413

http 413 代表“请求体过大”,通常是服务端拥有上传大小限制。可能的源有两个:
为了确认问题所在,我们进行下面的演示性测试。
在 powershell 中执行:
fsutil file createnew bigfile.test 314572800
curl.exe -v -x post http://域名/ -h "expect:" --data-binary "@bigfile.test"
http/1.1 413 request entity too large server: nginx
确认限制来自 nginx,git 本身无问题。

fsutil file createnew smallfile.test 1024
重复 curl post 测试,结果成功,显示 gitblit 网页内容,证明小文件能正常处理。

http { 块,加入:client_max_body_size 512m; # 允许最大上传体积为 512mb

http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 512m;
sendfile on;
keepalive_timeout 60;
...
}
配置重载后,再次执行 git push,推送包大小达 274mb,已成功,问题解决。

| 操作步骤 | 结果 |
|---|---|
| curl 模拟上传 bigfile.test | 报 413,确认 nginx 限制 |
| curl 上传 smallfile.test | 成功返回 gitblit 页面 |
| 修改 nginx 配置 | 重载后 push 成功 |
.gitignore或 git lfs 管理大文件以上就是git push失败:http 413 request entity too large的问题排查和完整解决方法的详细内容,更多关于git push失败:http 413 request entity too large的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论