这个错误表明你在执行 git push
时遇到了 HTTP 413 错误,通常是由于 Git 推送的数据量过大,超过了服务器的限制(比如 Nginx/Apache 的默认请求大小限制)。以下是解决方案:
1. 检查服务器配置
如果推送的目标是自建 Git 服务(如 GitLab/Gitea),检查 Web 服务器(Nginx/Apache)的配置:
Nginx
client_max_body_size 100M; # 调整为足够大的值(如100MB或更大)
修改后重启 Nginx:
sudo systemctl restart nginx
Apache
LimitRequestBody 104857600 # 100MB
修改后重启 Apache:
sudo systemctl restart apache2
2. Git HTTPS Buffer 调大
如果是 HTTPS 协议推送,尝试增大 Git 的 HTTP POST buffer:
git config --global http.postBuffer 524288000 # 设置为500MB
3. SSH方式替代HTTPS
如果是 HTTPS 协议的问题,可以改用 SSH:
git remote set-url origin git@github.com:用户名/仓库名.git
4. GitHub / GitLab等平台的特殊情况
- GitHub:默认允许大文件(但建议用
git-lfs
)。 - GitLab:默认限制为10MB,需调整
gitlab.rb
:
然后运行:nginx['client_max_body_size'] = '100m'
sudo gitlab-ctl reconfigure
5.拆分提交或压缩历史
如果推送的是大文件或过多提交,可以:
- 交互式变基压缩历史提交:
git rebase -i HEAD~10 #合并最近10次提交
- 删除大文件后重写历史(慎用):
git filter-branch --tree-filter 'rm -f large_file' HEAD
6.使用分块传输编码(高级)
某些服务器支持分块传输,可尝试启用:
git config --global http.version HTTP/1.1
总结步骤推荐:
- 先调大本地
http.postBuffer
→
- 检查服务器配置 →
- 改用SSH协议 →
- 压缩提交或清理大文件
如果问题依旧,提供具体的 Git服务端类型和错误日志可进一步分析。
内容由零声教学AI助手提供,问题来源于学员提问