503错误推送到远程

时间:2016-05-27 16:52:59

标签: git http github

我遇到了推送到Github的503错误:

$ 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>

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

2 个答案:

答案 0 :(得分:5)

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

git config --global http.postBuffer 157286400

Atferwards,我可以在任何问题上执行推送请求:

git push

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

原因

&#34;智能HTTP&#34; Git中的协议使用&#34;传输编码:chunked&#34;在POST请求中,它包含大小超过1MB的打包对象。

某些代理服务器(如Nginx)默认情况下不支持此传输编码,请求将在到达Bitbucket Server之前被拒绝。因此,Bitbucket Server日志不会显示任何额外信息。

另一个可能的原因是负载均衡器配置错误。

解决方法

  • 当推送大量数据时(初始推送大型存储库,使用非常大的文件进行更改)可能需要在git客户端(而不是服务器)上设置更高的http.postBuffer设置。来自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 Server IP:端口绕过代理。如果这样做,代理服务器极有可能导致早期断开连接,需要进行调整。

  • 用户正在他的计算机上使用导致该问题的出站代理。

分辨率

答案 1 :(得分:0)

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

git config ---global user.email MY_GIT_EMAIL

然后尝试

git push

对我有用。