Github推送错误:RPC失败; result = 22,HTTP代码= 413

Sne*_*ess 122 git github git-tower

Github正在进行的愚蠢问题.我有大量的更改(大小约为120MB),当我尝试推送时,会发生这种情况:

git config http.postBuffer 524288000
git config http.postBuffer 524288000
git config http.postBuffer 524288000

我已经完成了

git config http.postBuffer 524288000,所以这似乎不是问题.会是什么呢?

Tin*_*nou 198

如果您收到错误413,那么问题不在于git,而在于您的Web服务器.这是您的Web服务器阻止大型上传文件.

nginx的解决方案

只需在http块中加载nginx.conf并添加client_max_body_size 50m;(根据需要更改值).

通过执行重新加载nginx接受新配置,sudo service nginx reload然后再次尝试通过http推送您的提交.

Apache的解决方案

在块中httpd.conf添加LimitRequestBody 52428800(根据需要更改值)<Directory />.这样做可以限制整个服务器文件系统的请求,只需一个虚拟主机或目录.

我希望这有帮助.

  • 这是正确的答案!如果50米不起作用,那么它 (6认同)
  • 50m 对我来说还不够,但这确实解决了我的问题!谢谢! (3认同)
  • 如果您不使用 Nginx 怎么办? (2认同)

Sne*_*ess 55

我想到了!!!当然我会在发帖后立即行动!

我将repo设置为使用HTTPS URL,我将其更改为SSH地址,一切恢复正常运行.

  • 这不是问题的原因.这只是一种解决方法.我想知道为什么它在https上失败了. (49认同)
  • 对我来说,ssh不是一个选择.因此,如果您处于相同的情况@ZincX,请参阅上面的答案. (4认同)
  • 这只是一个解决方法.Tinou的回答应该是公认的答案. (2认同)

kay*_*see 37

更改远程URL的命令(来自https - > git @ ...)是这样的

git remote set-url origin git@github.com:GitUserName/GitRepoName.git
Run Code Online (Sandbox Code Playgroud)

这里的原点是我的遥控器的名称(做git遥控器,出来的是你的起源).

  • 在 bitbucket(“克隆”按钮)的情况下,当从 `ssh://git@&lt;bitbucket-repo&gt;:&lt;port&gt;/dir/to/project.git` 中删除 `ssh://` 时,我遇到了问题小心,伙计们! (2认同)

vit*_*hal 13

如果您在大规模推送更改时遇到此问题,请在终端中运行以下命令。

git config --global http.postBuffer 157286400
Run Code Online (Sandbox Code Playgroud)

请参阅了解更多详细信息。


小智 8

我有同样的问题,但我使用的是反向代理.

所以我必须设置

client_max_body_size 50m; 
Run Code Online (Sandbox Code Playgroud)

在两个配置文件中:

  • 在gitlab nginx Web服务器上(如前面的答案所述)
  • 而且还在专用服务器上托管的nginx反向代理上.


小智 6

我已经在git URL中有"HTTPS //"但是遇到了这个错误.

我所做的就是用push添加选项-u并且工作正常.

git push -u origin master