163 votes

Git se bloque lors de l'écriture d'objets

J'essaie de git push -u origin master Et ça s'arrête à

Writing objects:  99% (219/220), 12.65 MiB | 97 KiB/s

El 12.65 la partie se déplace. Lorsque je quitte le processus et que je le relance, il reprend à 99 % mais ne se termine jamais, comme avant.

Il n'a jamais été poussé avec succès. C'est le commit initial.

0 votes

Où voulez-vous pousser ? Utilisez-vous SSH ou un autre protocole ?

34 votes

Est-ce que la mise en place de la http.postbuffer de l'aide ? stackoverflow.com/questions/6842687/

4 votes

Le commentaire de VonC est trop facile à ignorer. Ça marche pour moi.

380voto

Hugo Forte Points 484

J'ai suivi les conseils de VonC :

git config --global http.postBuffer 524288000

Pour des références futures, sur la base des commentaires :

500 MB: 524288000 (as posted in the original answer)
1 GB: 1048576000
2 GB: 2097152000 (anything higher is rejected as 'out of range')

7 votes

Omg, merci pour ça ! je m'arrachais les cheveux, et ça a résolu mes problèmes !

0 votes

Sur le client ou sur le serveur ?

0 votes

Sur le client @wutzebaer

46voto

mattalxndr Points 2100

Cela se produisait à cause d'un énorme fichier non ignoré dans le répertoire repo. Oups.

EDIT

Le blocage était dû au fait que le fichier prenait beaucoup de temps à télécharger. Le fichier n'était pas censé être inclus dans le push.

EDIT

S'il est vrai qu'un fichier volumineux peut être à l'origine de ce problème, si vous ne pouvez pas ignorer le fichier en question ou simplement ont pour le pousser puis suivre este réponse.

0 votes

@TimoSolo Pourquoi ferais-je ça ? C'est moi qui avais le problème, et j'ai documenté la solution exacte. C'est assez simple.

6 votes

Oui, votre solution a permis de supprimer le problème. Pour le bien des autres personnes qui ont réellement besoin de pousser un gros fichier, la réponse de @hugo-forte résout le problème. Vous n'avez pas à ont J'ai juste pensé que cela aiderait plus de gens - dans l'esprit de la SO.

2 votes

La question n'est pas "Comment puis-je commiter, puis pousser un énorme fichier ?". C'est "Mon git push est interminable. Pourquoi ?" Si vous ne vous attendez pas à ce que le push prenne une éternité, alors vous n'aviez probablement (comme moi) pas l'intention de commiter cet énorme fichier.

12voto

Maha Points 74

J'ai eu le même problème avec (writing objects %16) stuck then fatal. J'ai résolu ce problème en sauvegardant les modifications actuelles et en clonant un nouveau dépôt, puis en copiant les fichiers modifiés dans celui-ci.

Par exemple, supposons que le dépôt actuel est A, alors tout ce que vous devez faire est :

  1. mv A B
  2. git clone A
  3. mv B/* A/
  4. rm -rf B

Ensuite, on a fait un commit et un push et tout s'est bien passé. Il a reconnu les fichiers déplacés comme modifiés :)

0 votes

Vous aviez un symptôme différent. Le mien n'a pas eu d'erreur fatale.

6voto

Naewis Points 76

Dans mon cas, j'utilisais un dossier git avec de mauvais droits stocké sur le même disque qu'un repo, mais il pourrait en être de même avec ssh même si vous utilisez un utilisateur de connexion autorisé.

Vérifiez ensuite si vous avez les bons droits d'écriture sur le repo distant.

Exemple :

Init local et distant repo

git init /tmp/src
git init --bare /tmp/dst
cd /tmp/src

Ajout d'un dépôt distant à l'origine

src > git remote add dest /tmp/dst

Simulation du problème

src > chmod -R 555 /tmp/dst

Ajouter un faux fichier et le pousser

src > touch a && git add a && git commit -m 'demo'
src > git push --set-upstream dest master
src > git push
Counting objects: 3, done.
Writing objects: 99% (2/3), 202 bytes | 0 bytes/s.

Git se bloque

Solution

src > chmod -R 775 /tmp/dst

2 votes

Veuillez envisager d'ajouter quelques détails exemplaires supplémentaires à votre réponse, merci.

1 votes

Désolé. C'est mieux ?

3voto

Skitty Points 1158

Dans mon cas, il s'agissait de la taille du fichier. En ajoutant un fichier .gitignore avec les extensions requises, j'ai pu ignorer la plupart des fichiers indésirables à pousser.

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