Git Push失败:HTTP 413 Request Entity Too Large的问题排查和完整解决方法

 更新时间:2026年01月06日 08:52:27   作者:獨梟  
在使用 Git 推送包含较大编译产物的项目时,你是否遇到过 HTTP 413 Request Entity Too Large 错误?这通常并不是 Git 的问题,而是 Web 服务器拒绝接收大体积请求,本文将通过一个完整案例,实现大文件 Git 推送成功,需要的朋友可以参考下

引言

在使用 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 代表“请求体过大”,通常是服务端拥有上传大小限制。可能的源有两个:

  • Git 服务本身限制 (Gitblit/Gitea/GitLab)
  • Web 服务器如 Nginx 或 Apache 进行的前置限制

为了确认问题所在,我们进行下面的演示性测试。

三、演示测试: curl 模拟上传

步骤1: 创建大文件 (300MB)

在 PowerShell 中执行:

fsutil file createnew bigfile.test 314572800

步骤2: 使用 curl.exe 模拟 POST 上传

curl.exe -v -X POST http://域名/ -H "Expect:" --data-binary "@bigfile.test"

结果:

HTTP/1.1 413 Request Entity Too Large
Server: nginx

确认限制来自 Nginx,Git 本身无问题。

步骤3: 创建小文件 (1KB)

fsutil file createnew smallfile.test 1024

重复 curl POST 测试,结果成功,显示 Gitblit 网页内容,证明小文件能正常处理。

四、解决方案:修改 Nginx 配置 (宝塔面板)

操作步骤

  1. 打开宝塔面板后台 (http://你的IP:8888)
  2. 点击左侧「软件商店」,找到 Nginx
  3. 点击「配置修改」或「配置文件」
  4. 找到 http { 块,加入:
client_max_body_size 512m;  # 允许最大上传体积为 512MB
  1. 保存配置
  2. 回到 Nginx 设置界面,重载配置或重启 Nginx

实际配置示意图

http {
    include       mime.types;
    default_type  application/octet-stream;

    client_max_body_size 512m;

    sendfile        on;
    keepalive_timeout  60;
    ...
}

五、重试 Git 推送

配置重载后,再次执行 Git push,推送包大小达 274MB,已成功,问题解决。

六、总结与建议

操作步骤结果
curl 模拟上传 bigfile.test报 413,确认 Nginx 限制
curl 上传 smallfile.test成功返回 Gitblit 页面
修改 Nginx 配置重载后 push 成功

建议:

  • 尽量不要推送编译产物 (.dll/.lib/.pdb)
  • 使用 .gitignore或 Git LFS 管理大文件
  • 一旦推送无法成功,优先检查 Nginx/选项配置

以上就是Git Push失败:HTTP 413 Request Entity Too Large的问题排查和完整解决方法的详细内容,更多关于Git Push失败:HTTP 413 Request Entity Too Large的资料请关注脚本之家其它相关文章!

相关文章

  • 页面中加载优酷视频去掉广告的方法

    页面中加载优酷视频去掉广告的方法

    本文主要介绍了页面中加载优酷视频去掉广告的方法,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • Vscode好用的一些前端自定义代码推荐

    Vscode好用的一些前端自定义代码推荐

    这篇文章主要介绍了如何在VSCode中自定义代码片段和快捷键,以提高前端开发效率,推荐了几个常用的自定义代码片段,还提供了这些代码片段的详细示例和使用方法,需要的朋友可以参考下
    2024-11-11
  • 反向传播BP学习算法Gradient Descent的推导过程

    反向传播BP学习算法Gradient Descent的推导过程

    这篇文章主要为大家介绍了反向传播BP学习算法-Gradient Descent的推导过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Postman测试报告的生成方法

    Postman测试报告的生成方法

    做完测试后,都会编写一份测试报告,测试报告中最主要的就是呈现出测试结果,哪些用例通过了,哪些用例没有通过。像postman这么强大的功能也可以自动生成报告,供我们测试同学进行查看,显得更加有B格
    2022-01-01
  • Git撤回已Push的代码的方法大全

    Git撤回已Push的代码的方法大全

    在日常的开发中,我们经常使用Git来进行版本控制,有时候,我们可能会不小心将错误的代码 Push 到远程仓库,或者想要在本地回退到之前的某个版本重新开发,所以本文给大家介绍了Git 如何撤回已 Push 的代码,需要的朋友可以参考下
    2025-12-12
  • git中实现修改提交信息(版本号)

    git中实现修改提交信息(版本号)

    本文介绍了如何修改Git中的提交信息,包括修改最近一次提交和任意提交的信息,首先,使用git commit --amend命令可以快速修改最近一次的提交信息,此外,若需修改任意提交,可以通过启动交互式变基,使用reword选项重新编辑提交信息
    2024-10-10
  • 12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)

    这篇文章主要介绍了11种实现301网页重定向方法的代码实例,文中包含9种编程语言和3种WEB服务器配置方法,共计12种,需要的朋友可以参考下
    2014-07-07
  • 30个提高Web程序执行效率的好经验分享

    30个提高Web程序执行效率的好经验分享

    30个提高Web程序执行效率的好经验分享,需要的朋友可以参考下。
    2011-10-10
  • 如何通过memberlist库实现gossip管理集群及集群数据交互问题

    如何通过memberlist库实现gossip管理集群及集群数据交互问题

    这篇文章主要介绍了通过memberlist库实现gossip管理集群以及集群数据交互,本文介绍了memberlist库的简单用法,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • VSCode自定义配色方案的实现

    VSCode自定义配色方案的实现

    这篇文章主要介绍了VSCode自定义配色方案的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论