133 votes

git push échoue: RPC a échoué; résultat = 22, code HTTP = 411

J'ai une seule branche. Pendant quelques mois j'ai été en utilisant

git push origin master

pour en commettre à mon dépôt local. La nuit dernière, après j'ai fait quelques changements mineurs pour mon dépôt local et essayer de les pousser à l'aide de la même commande, j'ai eu cette erreur:

error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

J'ai googlé et trouvé des questions telles que ce un et ce un seul, mais aucune des réponses à ces questions résout mon problème.

La plupart des réponses suggèrent que le problème de détacher la tête. Pourtant, je ne pense pas que ma tête est détachée. Je ne pense que je suis sur la mauvaise branche (que je n'ai qu'une branche...)

J'ai fait quelques expériences pour comprendre quel est le problème, et voici les résultats que j'ai obtenu:

(1) d'Abord, vient à ma git status sortie

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# egal.aux
# egal.blg
# egal.out
# egal.pdf
# egalcar.aux
# egalcar.blg
# egalcar.pdf
nothing added to commit but untracked files present (use "git add" to track)

(2) Lorsque je tape git reflog, je peux voir tous mes locaux s'engage, mais le dépôt distant ne sont pas mis à jour.

(3) Lorsque je tape git branch -a,- je obtenir

* master
  remotes/origin/master

(4) Lorsque je tape git remote show origin,- je obtenir

* remote origin
  Fetch URL: http://github.com/CherryQu921/egaldoc_en
  Push  URL: http://github.com/CherryQu921/egaldoc_en
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

Je pense que la dernière ligne de sortie (le "fast-forwardable") est bizarre, mais je ne suis pas sûr de ce qui est mal...

302voto

Maksym Polshcha Points 4712

Si vous essayez de transférer un grand nombre de modifications dans un référentiel Git avec HTTP ou HTTPS, vous pouvez recevoir un message d'erreur tel que: RPC failed; result=22, HTTP code = 411 . Ceci est dû à une configuration par défaut de Git qui limite certaines opérations HTTP à 1 mégaoctet.

Pour modifier cette limite, exécutez-la dans votre référentiel local.

 git config http.postBuffer *bytes*
 

où octets est le nombre maximal d'octets autorisés. Par exemple:

 git config http.postBuffer 524288000
 

Pour 500Mo (merci @Hengjie)

25voto

jdr0dn3y Points 73

Vous pouvez également le faire globalement -

 git config --global http.postBuffer 524288000
 

Cela permettra à tous les dépôts locaux de transmettre jusqu'à 500 Mo de données.

2voto

Errepunto Points 21

Si vous utilisez TortoiseGit pour Windows, le plus simple est d'utiliser la configuration intégrées.

Dans un explorateur de fichier appuyez sur la bouton gauche de la souris, sélectionnez TortoiseGit -> Paramètres. Accepter le message d'information. Maintenant, vous pouvez choisir si vous souhaitez configurer le bien que pour le projet en cours ou d'un système whide. Pour l'échelle du système de configuration appuyez sur "modifier l'échelle du système gitconfig" et ajouter la ligne suivante à la section [http]:

postBuffer = 524288000

(la section [http] n'existe pas, le créer)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X