git 503推送到远程时出错

56lgkhnf  于 2022-12-10  发布在  Git
关注(0)|答案(4)|浏览(391)

我遇到了一个503错误推送到Github:

$ git push github develop
Counting objects: 22, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (22/22), done.
Writing objects: 100% (22/22), 4.16 KiB | 0 bytes/s, done.
Total 22 (delta 16), reused 0 (delta 0)
error: RPC failed; HTTP 503 curl 22 The requested URL returned error: 503 Service Unavailable
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

我已经检查了他们的status page和“所有系统运行”,所以我想这一定是我的配置问题。我的.gitconfig文件只有我的名字和电子邮件:

[user]
    name = Bradley Wogsland
    email = <omitted>

(我在这里省略了我真实的的电子邮件,但在实际的文件中它是存在的)。

eufgjt7s

eufgjt7s1#

我遇到了同样的问题,并通过将Git缓冲区大小增加到我的repo的最大单个文件大小来修复它:

git config --global http.postBuffer 157286400

之后,我可以毫无问题地执行推送请求:

git push

下面是Bitbucket Support的一个很好的解释:

原因

Git中的“智能HTTP”协议使用“传输编码:当POST请求中包含大于1 MB的打包对象时,会出现“chunked”。
有些代理服务器,如Nginx,默认不支持这种传输编码,请求在到达Bitbucket服务器之前会被拒绝。因此,Bitbucket服务器日志不会显示任何额外的信息。
另一个可能的原因是负载平衡器配置错误。

解决方法

  • 当推送大量数据时(初始推送一个大仓库,修改一个非常大的文件),可能需要在git客户端(而不是服务器端)设置更高的http.postBuffer。From https://www.kernel.org/pub/software/scm/git/docs/git-config.html
    http.postBuffer将数据投递到远程系统时,智能HTTP传输使用得缓冲区得最大大小(以字节为单位).对于大于此缓冲区大小得请求,HTTP/1.1与Transfer-Encoding:chunked用于避免在本地创建大规模的打包文件。默认值为1 MiB,对于大多数请求来说足够了。
  • 反向代理服务器上的配置。通常,ngnix参数client_max_body_size是一个阻塞器。反向代理服务器也可能有连接超时,从而关闭连接(例如Apache中的Timeout或ProxyTimeout,ngnix中的proxy_read_timeout)。尝试通过直接推送到Bitbucket服务器IP:端口来绕过代理服务器。如果这样做有效,则很可能是代理服务器导致了提前断开连接,需要进行调整。
  • 用户正在其计算机上使用出站代理,这是导致问题的原因。

解决方案

qq24tv8q

qq24tv8q2#

我遇到了同样的问题。尝试将我的全球电子邮件设置为我的帐户的电子邮件:

git config ---global user.email MY_GIT_EMAIL

然后尝试

git push

对我很有效。

j2cgzkjk

j2cgzkjk3#

在我的情况下,这是一个防火墙规则。当我们的网络团队允许时,流量通过

ckx4rj1h

ckx4rj1h4#

我在推送大量文件时遇到了这个问题。
增加postBuffer大小无法解决问题。
解决方案是取消设置http.postBuffer

git config --global --unset http.postBuffer
git config --local --unset http.postBuffer

learn.microsoft.com - http.postBuffer问题

相关问题