web-dev-qa-db-fra.com

Github Push Error: RPC a échoué; résultat = 22, code HTTP = 413

question stupide avec Github passe en ce moment. J'ai une quantité décente de changements (~ 120 Mo de taille), quand je tente de pousser, c'est ce qui se passe:

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

Jai deja fait

git config http.postBuffer 524288000, donc cela ne semble pas être le problème. Qu'est ce que ça pourrait être?

119
Sneakyness

Je l'ai compris !!! Bien sûr, je le ferais juste après avoir frappé après!

Le référentiel était configuré pour utiliser l'URL HTTPS, je l'ai changé en adresse SSH et tout a repris son travail.

56
Sneakyness

Si vous obtenez l'erreur 413, alors le problème ne concerne pas git mais avec votre serveur Web. C'est votre serveur Web qui bloque les gros fichiers de téléchargement.

Solution pour nginx

Il suffit de charger votre nginx.conf et ajouter client_max_body_size 50m; (modifiez la valeur selon vos besoins) dans le bloc http.

Rechargez nginx pour accepter la nouvelle configuration en exécutant Sudo service nginx reload et essayez à nouveau de pousser votre commit sur http.

Solution pour Apache

Dans votre httpd.conf ajouter LimitRequestBody 52428800 _ (modification de la valeur selon vos besoins) dans un <Directory /> bloquer. Ce faisant, vous pouvez limiter la demande à l’ensemble du système de fichiers du serveur, à un seul hôte virtuel ou à un répertoire.

J'espère que ça aide.

193
Tinou

la commande pour changer l’URL distante (à partir de https -> git @ ...) ressemble à ceci

git remote set-url Origin [email protected]:GitUserName/GitRepoName.git

Origin, voici le nom de ma télécommande (faites git remote et ce qui en sort est votre origine).

37
kay am see

J'ai eu le même problème, mais j'utilisais un proxy inverse.

J'ai donc dû mettre

client_max_body_size 50m; 

dans les deux fichiers de configuration:

  • sur le serveur Web gitlab nginx (comme indiqué dans les réponses précédentes)
  • mais aussi sur le proxy inverse nginx hébergé sur le serveur dédié.
8
grimabe

J'avais déjà "HTTPS //" dans l'URL git, mais j'ai rencontré cette erreur.

Tout ce que j'ai fait est d'ajouter l'option -u avec Push et cela a fonctionné.

git Push -u Origin master

6
Jayzcode

Pour ceux qui utilisent IIS 7 pour héberger un git http/https endpoint:

Vous devez augmenter votre uploadReadAheadSize.

Lancer Gestionnaire des services Internet (IIS)

  1. Développez le champ Serveur

  2. Développer les sites

  3. Sélectionnez le site pour lequel vous souhaitez effectuer la modification.

  4. Dans la section Fonctionnalités, double-cliquez sur Configuration Editor

  5. Sous Section, sélectionnez: system.webServer > serverRuntime

  6. Modifiez la section uploadReadAheadSize (la valeur doit être comprise entre 0 et 2147483647.)

  7. Cliquez sur Apply

  8. Redémarrer le site Web

4
Markus Mauch

Si vous faites face à ce problème en poussant des modifications de grande taille, exécutez la commande ci-dessous dans le terminal.

git config --global http.postBuffer 157286400

Voir this pour plus de détails.

2
vitthal

J'ai eu cette erreur (erreur: RPC a échoué; résultat = 22, code HTTP = 41) lorsque j'ai essayé de pousser mon commit initial dans un nouveau référentiel BitBucket. L'erreur s'est produite pour moi parce que le référentiel BitBucket avait une branche no master. Si vous utilisez SourceTree, vous pouvez créer une branche principale sur l’Origine en appuyant sur le bouton bouton Git Flow.

1
Ben

J'ai eu ce problème lorsque j'essaie de cloner un repo git sur une machine Linux.

l'URL suivante fonctionne pour moi dans Windows

http://[email protected]/scm/project/swamy-main.git

alors que l'URL suivante fonctionne sur la machine Linux et qu'il a https dans l'URL

https://[email protected]/scm/project/swamy-main.git
1
Swamy

echec du clone https of Gists (ssh fonctionne, voir ci-dessous):

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

Cela marche: git clone [email protected]:123456.git

1
Jean Jordaan

A été confronté au même problème. Dans mon cas, il s'agissait de versions GIT non compatibles entre plusieurs utilisateurs accédant au même projet (pull/push).

viens de mettre à jour la version de GIT et de mettre à jour le chemin d'accès sur Android et que tout fonctionne bien pour moi).

Modifier -

Git pour Windows (1.9.5) ayant un problème, la mise à jour de la même chose peut aider.

0
Vishal

L'erreur se produit dans 'libcurl', qui est le protocole sous-jacent pour le téléchargement https. La solution consiste à mettre à jour libcurl. Pour obtenir plus de détails sur l'erreur, définissez GIT_CURL_VERBOSE = 1

https://confluence.atlassian.com/pages/viewpage.action?pageId=306348908

Signification de l'erreur, conformément à la documentation de libcurl: CURLE_HTTP_RETURNED_ERROR (22)

Cela est renvoyé si CURLOPT_FAILONERROR est défini sur TRUE et que le serveur HTTP renvoie un code d'erreur> = 400.

http://curl.haxx.se/libcurl/c/libcurl-errors.html

0
FractalSpace

Utilisez-vous des liens https au lieu de liens ssh? Étant donné que le lien https est limité par la taille du téléchargement de HttpServer (tel que Apache, Ngnix), aucune restriction de ce type n’existe lors de l’utilisation de ssh.

Utilisez la méthode suivante pour basculer vers le lien ssh.

  1. Terminal ouvert.
  2. Basculez vers le répertoire de travail de votre projet.
  3. Obtenir le nom du référentiel distant
$ git remote -v
Origin  https://github.com/[user_name]/[project_name].git (fetch)
Origin  https://github.com/[user_name]/[project_name].git (Push)
  1. Modifiez l'adresse git en lien ssh.
git remote set-url Origin [email protected]:[user_name]/[project_name].git

Si vous déterminez le nom du référentiel distant, passez directement à l'étape 4. Vous pouvez maintenant exécuter l'opération Push avec plaisir.

0
Zhenjie Yan

A été confronté au même problème mais il a été résolu en nettoyant le référentiel git (Nettoyez les fichiers non suivis en utilisant "git clean").

0
Darpan

J'ai eu le même problème (sous Win XP), j'ai mis à jour le fichier libcurl-4.dll de mon répertoire Git bin vers la version SSL à partir de http://www.paehl.com/open_source/?download=curl_DLL_ONLY .7z (renommer libcurl4.dll). Tout fonctionne bien maintenant.

0
Angus Morgan

Besoin de changer l'URL distante en ssh ou https

git remote set-url Origin [email protected]:laravel/laravel.git

ou

git remote set-url Origin https://github.com/laravel/laravel.git

J'espère que ça va aider :)

0
Vikash

quand j'ai utilisé l'URL https pour pousser vers le maître distant, j'ai rencontré le même problème, je l'ai changé en adresse SSH, et tout a repris son fonctionnement sans faille.

0
lvjiujin