129 votes

git push se bloque après la ligne Total

Mon push git est suspendu après avoir semblé terminer le push. Je fais git push

Counting objects: 51, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (47/47), 27.64 MiB | 6.47 MiB/s, done.
Total 47 (delta 4), reused 0 (delta 0)

Il se bloque ici et je dois contrôler-c pour revenir à la ligne de commande. J'ai fait plusieurs commits dans le passé avec ce projet sans aucun problème. J'ai essayé d'autres dépôts sur ma machine et ils fonctionnent bien. Qu'est-ce qui se passe ici ?

166voto

Patrick Points 2766

Cela n'a posé aucun problème. J'ai simplement dû attendre que le téléchargement soit terminé. J'avais ajouté plusieurs fichiers volumineux et il n'y a pas d'indicateur de progression. Peut-être que quelqu'un d'autre trouvera cela utile.

123voto

Faiz Ahmad Dae Points 741

https://git-scm.com/docs/git-config#Documentation/git-config.txt-httppostBuffer

http.postBuffer

Taille maximale en octets du tampon utilisé par les transports HTTP intelligents lors du POST de données vers le système distant. Pour les requêtes supérieures à cette taille de tampon, HTTP/1.1 et Transfer-Encoding : chunked sont utilisés pour éviter de créer localement un fichier pack massif. La valeur par défaut est de 1 MiB, ce qui est suffisant pour la plupart des demandes.

Notez que l'augmentation de cette limite n'est efficace que pour désactiver l'encodage de transfert par morceaux et ne doit donc être utilisée que lorsque le serveur distant ou un proxy ne supporte que HTTP/1.0 ou n'est pas conforme à la norme HTTP. Augmenter cette limite n'est pas, en général, une solution efficace pour la plupart des problèmes de push, mais peut augmenter la consommation de mémoire de manière significative puisque la totalité du tampon est allouée même pour les petits push.

Résolution

  1. Augmentez la taille de la mémoire tampon de Git à la plus grande taille de fichier individuel de votre repo.

  2. git config --global http.postBuffer 157286400

  3. Se référer à la résolution de Le push Git échoue - le client a voulu envoyer un corps trop volumineux en morceaux. pour la configuration du proxy inverse de ngnix. Augmentez ce paramètre à la plus grande taille de fichier individuel de votre repo.

  4. Contournez le proxy de sortie comme expliqué à la page Impossible de cloner ou de tirer en raison d'un proxy sortant de git.

13voto

pal4life Points 693

Ça n'a fonctionné pour moi que dans le cas où j'ai fait git push -u origin main alors que j'ai simplement utilisé git push pour le seau à bit, il n'est pas passé à travers.

13voto

Alim Özdemir Points 1003

Il peut s'agir (comme le suggère la réponse acceptée) d'un simple moment d'attente, mais dans la majorité des cas, cela est lié aux permissions sur le serveur distant. Bien qu'il ne s'agisse généralement pas d'un problème sur les services git publics tels que GitHub, Gitlab ou Bitbucket, les sites auto-hébergés ne sont pas toujours en mesure de répondre à ces questions. à distance peuvent avoir un utilisateur spécial, ou un groupe pour l'accès.

Et sur les nouveaux dépôts nus, il ne suffit pas de changer le dossier, mais il faut plutôt être récursif à cause de .git -Dossier intérieur.

2voto

GDoronin Points 1

Attendre que le téléchargement soit terminé ne fonctionne pas pour moi. J'ai poussé un fichier pas très gros, mais j'ai attendu assez longtemps, mais je suis toujours bloqué.

Ce qui m'a aidé, c'est la mise à jour de msysgit 1.9.5 à git-for-windows 2.6.2 .

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