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的资料请关注脚本之家其它相关文章!

相关文章

  • 解决vs code通过remote-ssh远程到ubuntu频繁掉线问题

    解决vs code通过remote-ssh远程到ubuntu频繁掉线问题

    这篇文章主要介绍了vs code通过remote-ssh远程到ubuntu频繁掉线问题解决方法,这个解决方案只要用自己安装的Git替换掉windows本身的Git工具,需要的朋友可以参考下
    2022-09-09
  • git使用rebase删除某次提交的问题

    git使用rebase删除某次提交的问题

    文章介绍了Git删除特定commit的两种方法:通过`git rebase -i HEAD~n`交互式删除最近提交,需修改操作为`drop`并强制推送到远程;或使用`git rebase --abort`撤销操作,同时提醒处理空提交时需检查暂存区文件
    2025-09-09
  • git如何回退已提交的代码中的指定文件

    git如何回退已提交的代码中的指定文件

    在Git中,有多种方法可以回退某个提交中特定文件的内容,常见的方法包括使用`git checkout`、`git revert`、`git reset`和`git rebase`,这些方法各有优缺点,可以根据具体情况选择合适的方法,在执行这些命令之前,建议先备份工作或使用`git stash`保存未提交的工作
    2025-12-12
  • flash 挡住层的解决方法

    flash 挡住层的解决方法

    使用层制作的下拉菜单下正好有FLASH动画,菜单被动画遮挡.
    2009-08-08
  • Sublime Text 4怎么安装使用

    Sublime Text 4怎么安装使用

    这篇文章主要介绍了Sublime Text 4怎么安装使用,下载对应的安装包,将该exe文件复制到对应的sublime text的安装目录下(与sublime_text.exe同级),右键管理员运行即可,需要的朋友跟随小编一起看看吧
    2022-01-01
  • 导致爬虫无法使用的原因探讨解决

    导致爬虫无法使用的原因探讨解决

    随着互联网的普及和发展,爬虫技术也越来越多地被应用到各个领域,然而,在实际使用中,爬虫可能会遇到各种问题导致无法正常工作,本文将探讨导致爬虫无法使用的原因,并给出相应的解决方法
    2023-10-10
  • 水晶报表 分页 的问题

    水晶报表 分页 的问题

    在论坛上经常会看到水晶报表分页的问题,这个很好解决。但是自动插入空白行的问题却一直没有很好的答案,经过研究找到一个变通的办法来实现了。
    2009-04-04
  • Git撤回已Push的代码的方法大全

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

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

    Git查看提交历史的操作技巧

    Git作为最流行的版本控制工具,其提交历史管理是开发者日常工作的核心部分,无论是回溯代码变更、定位问题根源,还是进行版本回退,掌握Git提交历史的操作技巧都至关重要,本文将全面解析Git提交历史相关命令,需要的朋友可以参考下
    2025-08-08
  • UTF-8 编码中BOM的检测与删除

    UTF-8 编码中BOM的检测与删除

    所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zero width no-break space。
    2011-09-09

最新评论