Ошибка Github Push: сбой RPC;результат = 22, код HTTP = 413 - PullRequest
118 голосов
/ 20 сентября 2011

глупая проблема с Github, происходящим прямо сейчас.У меня приличное количество изменений (~ 120 МБ), когда я пытаюсь нажать, вот что происходит:

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly

Я уже сделал

git config http.postBuffer 524288000, поэтомуэто, кажется, не проблема.Что бы это могло быть?

Ответы [ 16 ]

192 голосов
/ 22 февраля 2013

Если вы получаете ошибку 413, то проблема не в git, а в с вашим веб-сервером . Это ваш веб-сервер, который блокирует большие файлы загрузки.

Решение для nginx

Просто загрузите nginx.conf и добавьте client_max_body_size 50m; (изменяя значение в соответствии с вашими потребностями) в блок http.

Перезагрузите nginx, чтобы принять новую конфигурацию, выполнив sudo service nginx reload и попробуйте снова выдвинуть ваш коммит через http.

Решение для Apache

В вашем httpd.conf добавьте LimitRequestBody 52428800 (изменяя значение в соответствии с вашими потребностями) внутри блока <Directory />. Делая это, вы можете ограничить запрос всей файловой системы сервера, только один виртуальный хост или каталог.

Надеюсь, это поможет.

56 голосов
/ 20 сентября 2011

Я понял это !!! Конечно, я бы сразу после попадания в пост!

У меня было настроено репо для использования URL-адреса HTTPS, я изменил его на адрес SSH, и все возобновило работу без нареканий.

37 голосов
/ 10 октября 2011
Команда

для изменения удаленного URL (из https -> git @ ...) выглядит примерно так:

git remote set-url origin git@github.com:GitUserName/GitRepoName.git

origin здесь имя моего пульта (do git remote и что выходитваше происхождение).

7 голосов
/ 06 мая 2015

У меня была такая же проблема, но я использовал обратный прокси.

Так что я должен был установить

client_max_body_size 50m; 

внутри обоих файлов конфигурации:

  • на веб-сервере gitlab nginx (как сказано в предыдущих ответах)
  • но также и на обратном прокси-сервере nginx, размещенном на выделенном сервере.
6 голосов
/ 20 августа 2013

У меня уже был "HTTPS //" в URL-адресе git, но я столкнулся с этой ошибкой.

Все, что я сделал, это добавил опцию -u с помощью push, и это сработало.

git push -u origin master

4 голосов
/ 17 апреля 2014

Для тех, кто использует IIS 7 для размещения конечной точки git http / https:

Вам нужно увеличить uploadReadAheadSize.

Запуск Диспетчер информационных служб Интернета (IIS)

  1. Развернуть поле Сервер

  2. Развернуть сайты

  3. Выберите сайт, для которого вы хотите внести изменения.

  4. В разделе «Функции» дважды щелкните Configuration Editor

  5. Под Section выберите: system.webServer > serverRuntime

  6. Изменить раздел uploadReadAheadSize (значение должно быть в диапазоне от 0 до 2147483647.)

  7. Нажмите Применить

  8. Перезагрузить сайт

2 голосов
/ 22 октября 2018

Если вы столкнулись с этой проблемой, когда нажимаете изменения в большом размере, выполните команду ниже в терминале.

git config --global http.postBuffer 157286400

См. this для получения более подробной информации.

1 голос
/ 10 марта 2015

У меня была эта ошибка ( ошибка: сбой RPC; результат = 22, код HTTP = 413 ), когда я пытался выдвинуть свой первоначальный коммит в новый репозиторий BitBucket. Ошибка произошла для меня, потому что репозиторий BitBucket имел без главной ветви. Если вы используете SourceTree , вы можете создать основную ветвь на источнике, нажав кнопку Git Flow .

1 голос
/ 01 ноября 2013

https клон гистов не работает (ssh работает, см. Ниже):

12:00 jean@laptop:~/tmp$ GIT_CURL_VERBOSE=1 git clone https://gist.github.com/123456.git username
Initialized empty Git repository in /home/jean/tmp/username/.git/
* Couldn't find host gist.github.com in the .netrc file; using defaults
* About to connect() to gist.github.com port 443 (#0)
*   Trying 192.30.252.142... * Connected to gist.github.com (192.30.252.142) port 443 (#0)
* found 141 certificates in /etc/ssl/certs/ca-certificates.crt
*        server certificate verification OK
*        common name: *.github.com (matched)
*        server certificate expiration date OK
*        server certificate activation date OK
*        certificate public key: RSA
*        certificate version: #3
*        subject: C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=*.github.com
*        start date: Mon, 30 Apr 2012 00:00:00 GMT
*        expire date: Wed, 09 Jul 2014 12:00:00 GMT
*        issuer: C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert High Assurance CA-3
*        compression: NULL
*        cipher: ARCFOUR-128
*        MAC: SHA1
> GET /123456.git/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 301 Moved Permanently
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:51 GMT
< Content-Type: text/html
< Content-Length: 178
< Location: https://gist.github.com/gist/123456.git/info/refs?service=git-upload-pack
< Vary: Accept-Encoding
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host gist.github.com left intact
* Issue another request to this URL: 'https://gist.github.com/gist/123456.git/info/refs?service=git-upload-pack'
* Couldn't find host gist.github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host gist.github.com
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
> GET /gist/123456.git/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 200 OK
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:52 GMT
< Content-Type: application/x-git-upload-pack-advertisement
< Transfer-Encoding: chunked
< Expires: Fri, 01 Jan 1980 00:00:00 GMT
< Pragma: no-cache
< Cache-Control: no-cache, max-age=0, must-revalidate
< Vary: Accept-Encoding
<
* Connection #0 to host gist.github.com left intact
* Couldn't find host gist.github.com in the .netrc file; using defaults
* About to connect() to gist.github.com port 443 (#0)
*   Trying 192.30.252.142... * connected
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
* found 141 certificates in /etc/ssl/certs/ca-certificates.crt
* SSL re-using session ID
*        server certificate verification OK
*        common name: *.github.com (matched)
*        server certificate expiration date OK
*        server certificate activation date OK
*        certificate public key: RSA
*        certificate version: #3
*        subject: C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=*.github.com
*        start date: Mon, 30 Apr 2012 00:00:00 GMT
*        expire date: Wed, 09 Jul 2014 12:00:00 GMT
*        issuer: C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert High Assurance CA-3
*        compression: NULL
*        cipher: ARCFOUR-128
*        MAC: SHA1
> POST /123456.git/git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept-Encoding: deflate, gzip
Content-Type: application/x-git-upload-pack-request
Accept: application/x-git-upload-pack-result
Content-Length: 116

< HTTP/1.1 301 Moved Permanently
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:53 GMT
< Content-Type: text/html
< Content-Length: 178
< Location: https://gist.github.com/gist/123456.git/git-upload-pack
< Vary: Accept-Encoding
<
* Ignoring the response-body
* Connection #0 to host gist.github.com left intact
* Issue another request to this URL: 'https://gist.github.com/gist/123456.git/git-upload-pack'
* Violate RFC 2616/10.3.2 and switch from POST to GET
* Couldn't find host gist.github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host gist.github.com
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
> GET /gist/123456.git/git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept-Encoding: deflate, gzip
Content-Type: application/x-git-upload-pack-request
Accept: application/x-git-upload-pack-result

* The requested URL returned error: 400
* Closing connection #0
error: RPC failed; result=22, HTTP code = 400

Это работает: git clone git@gist.github.com:123456.git

1 голос
/ 03 августа 2013

У меня возникла эта проблема, когда я пытался клонировать GIT-репо на Linux-машине.

следующий URL работает для меня в Windows

http://swamy@git.swamy.com/scm/project/swamy-main.git

, в то время как следующий URL работает на компьютере с Linux и имеет https в URL

https://swamy@git.swamy.com/scm/project/swamy-main.git
...