Je n'ai qu'une seule succursale. Depuis quelques mois j'utilise
git push origin master
pour s'engager dans mon référentiel local. Hier soir, après avoir apporté quelques modifications mineures à mon référentiel 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 cherché sur Google et trouvé des questions telles que 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 être sur la mauvaise branche (car je n'ai qu'une seule branche ...)
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 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 commits locaux, mais le référentiel distant ne sera tout simplement pas mis à jour.
(3) Quand je tape git branch -a
, j'obtiens
* master remotes/origin/master
(4) Quand je tape git remote show origin
, j'obtiens
* 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 ...
fast-forwardable
signifie que vous pouvez envoyer vos modifications locales à la branche distante, rien de criminel :-)Réponses:
Si vous essayez de pousser un grand nombre de changements à un référentiel Git avec HTTP ou HTTPS, vous pouvez obtenir un message d'erreur comme erreur:
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 dans votre référentiel local
où octets est le nombre maximal d'octets autorisé. Par exemple:
Pour 500 Mo (merci @Hengjie)
la source
git config http.postBuffer 524288000
pour 500 Mo./etc/nginx/sites-available/gitlab
). Plus d'infos: github.com/gitlabhq/gitlabhq/issues/3099RPC failed; result=22, HTTP code = 502
?Vous pouvez également le faire globalement -
Cela permettra à tous les dépôts locaux de pousser jusqu'à 500 Mo de données.
la source
Aucune des solutions proposées n'a fonctionné pour nous. Nous avons dû passer à
ssh
pour que cela fonctionne plutôt que laHTTPS
solution.la source
Si vous utilisez TortoiseGit pour Windows, le moyen 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. Désormais, 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 "modifier gitconfig dans tout le système" et ajoutez la ligne suivante à la section
[http]
:(si la section
[http]
n'existe pas, créez-la)la source
J'ai résolu l'erreur 22 comme suit: Dans la commande "git clone", je n'ai PAS fourni l'utilisateur: mot de passe. Le clone a fonctionné, mais pas la poussée. Solution pour l'erreur 22: Modifiez .git / config l'url comme ceci: url = http: // user: pwd @ host / ... Ensuite, le push a fonctionné.
la source