web-dev-qa-db-fra.com

Git échoue lors de la validation de commit to github

J'ai cloné sur mon ordinateur portable un git repo que j'ai hébergé sur github. J'ai réussi à envoyer quelques commits à github sans problème. Cependant, je reçois maintenant l'erreur suivante:

Compressing objects: 100% (792/792), done.
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done.
Total 1148 (delta 356), reused 944 (delta 214)

A partir de là, il ne reste plus qu'à suspendre et je dois enfin CTRL + C retour au terminal.

124
Stephen Melvin

J'avais le même problème et je pense que cela a à voir avec la taille du repo (édité ou la taille d'un fichier particulier) que vous essayez de pousser.

Fondamentalement, j'ai pu créer de nouveaux dépôts et les pousser à github. Mais un existant ne fonctionnerait pas.

Le code d'erreur HTTP semble me sauvegarder, il s'agit d'une erreur de type "Longueur requise". Alors peut-être est-il trop grand pour être calculé ou calculé que le max. Qui sait.

MODIFIER

J'ai trouvé que le problème peut être des fichiers volumineux. J'ai eu une mise à jour qui ne serait pas Push même si j'avais réussi à pousser jusqu'à ce point. Il n'y avait qu'un seul fichier dans le commit, mais il se trouvait être 1,6M

J'ai donc ajouté le changement de configuration suivant

git config http.postBuffer 524288000

Pour permettre à la taille du fichier jusqu'à 500M, puis mon Push a fonctionné. C’est peut-être le problème qui a initialement été posé lors du transfert d’un gros dépôt sur le protocole http.

FIN ÉDITER

la façon dont je pouvais le faire fonctionner (EDITER avant de modifier postBuffer) consistait à archiver mon référentiel, à le copier sur une machine pouvant traiter git sur ssh et à le pousser vers github. Ensuite, lorsque vous essayez d'effectuer une opération Push/Pull à partir du serveur d'origine, celle-ci doit fonctionner avec https. (puisqu'il s'agit d'une quantité de données beaucoup plus petite qu'un Push original).

J'espère que cela t'aides.

275
Will

Si cette commande ne vous aide pas

git config http.postBuffer 524288000

Essayez de changer la méthode ssh en https

git remote -v
git remote rm Origin 
git remote add Origin https://github.com/username/project.git
4
Nikita Pushkar

Ressemble à un problème de serveur (c'est-à-dire un problème de "GitHub").
Si vous regardez ce fil , cela peut arriver quand le git-http-backend obtient un tas corrompu. (et depuis ils vient de le mettre en place a support http intelligent ...)
Mais quelle que soit la cause réelle, elle peut également être liée à une récente perturbation sporadique dans l'un des serveurs de fichiers GitHub .

Voyez-vous toujours ce message d'erreur? Parce que si vous le faites:

  • vérifiez votre version Git locale (et mettez-la à jour)
  • signalez ceci comme bug de GitHub .

Remarque: le Smart HTTP Support représente un gros problème pour ceux qui se trouvent derrière un proxy de pare-feu d'entreprise authentifié!

A partir de maintenant, si vous clonez un dépôt sur le http:// url et que vous utilisez un client Git version 1.6.6 ou supérieure, Git utilisera automatiquement le mécanisme de transport le plus récent et le plus performant.
Encore plus étonnant, toutefois, vous pouvez désormais transférer ce protocole et cloner des référentiels privés. Si vous accédez à un référentiel privé ou si vous êtes un collaborateur et souhaitez un accès Push, vous pouvez entrer votre nom d'utilisateur dans l'URL et Git vous demandera le mot de passe lorsque vous tenterez d'y accéder.

Les clients plus âgés auront également recours à la méthode la plus ancienne et la moins efficace, de sorte que rien ne devrait casser - seuls les nouveaux clients devraient mieux fonctionner.

Encore une fois, assurez-vous de mettre à jour votre client Git en premier.

3
VonC

Pousser depuis l'interface graphique de Git au lieu de Bash fonctionne pour moi.

1
Vitaly Leskiv

J'ai essayé de Push sur mon propre serveur hébergé bonobo-git, et je ne me suis pas rendu compte que http.postbuffer désignait le répertoire du projet ...

donc juste pour les autres confus:

pourquoi? Dans mon cas, j’avais de gros fichiers Zip avec des ressources et des PSD poussés également - trop gros pour le tampon, je suppose.

Comment procéder: http.postbuffer: exécutez cette commande dans le répertoire src de votre projet, à côté du dossier .git et non sur le serveur.

sachez que de gros fichiers temporaires (morceaux) seront créés avec cette taille de mémoire tampon.

Remarque: Vérifiez simplement vos fichiers les plus volumineux, puis définissez le tampon.

0
BananaAcid