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

Je n’ai qu’une seule twig. J’ai utilisé pendant quelques mois

git push origin master 

s’engager dans mon référentiel local. Hier soir, après avoir apporté quelques modifications mineures à mon repository local et essayé de pousser en utilisant 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 comme celle-ci et celle-ci , mais aucune des réponses à ces questions ne résout mon problème.

La plupart des réponses suggèrent le problème de la tête détachée . Pourtant, je ne pense pas que ma tête soit détachée. Je ne pense pas non plus que je suis sur la mauvaise twig (car je n’ai qu’une seule twig…)

J’ai fait quelques expériences pour comprendre ce qui ne va pas, et voici les résultats que j’ai obtenus:

(1) Vient d’abord la sortie de mon git status

 # On branch master # Untracked files: # (use "git add ..." 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 commits locaux, mais le repository distant ne sera pas mis à jour.

(3) Quand je tape git branch -a , je reçois

 * master remotes/origin/master 

(4) Lorsque je tape git remote show origin , je reçois

 * 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 ne va pas …

Si vous tentez d’envoyer un grand nombre de modifications à un référentiel Git avec HTTP ou HTTPS, un message d’erreur tel que l’erreur peut s’afficher: RPC failed; result=22, HTTP code = 411 RPC failed; result=22, HTTP code = 411 . Cela 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 500 Mo (merci @Hengjie)

Vous pouvez aussi le faire globalement –

 git config --global http.postBuffer 524288000 

Cela permettra à tous les repositorys locaux de transférer jusqu’à 500 Mo de données.

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

Dans un explorateur de fichiers, appuyez sur le bouton gauche de la souris, sélectionnez TortoiseGit -> Paramètres . Acceptez le message d’information. Maintenant, vous pouvez choisir si vous souhaitez configurer la propriété uniquement pour le projet ou le système en cours. Pour la configuration à l’échelle du système, appuyez sur “edit systemwide gitconfig” et ajoutez la ligne suivante à la section [http] :

 postBuffer = 524288000 

(la section [http] n’existe pas, créez-la)

Aucune des solutions proposées n’a fonctionné pour nous. Nous avons dû passer à ssh pour que cela fonctionne à la place de la solution HTTPS .

J’ai résolu l’erreur 22 comme suit: Dans la commande “git clone”, je n’ai PAS fourni l’utilisateur: password. Le clone a fonctionné, mais pas la poussée. Solution de l’erreur 22: Modifiez l’url comme ceci: url = http: // utilisateur: pwd @ host / …