178 votes

Git "fatal : Impossible d'écrire un nouveau fichier d'index".

J'ai vu beaucoup d'autres fils de discussion à ce sujet et ils n'aident pas.

J'ai un repo très simple - deux fichiers JavaScript. Je dispose de plus de 100 Go sur mon Macbook. Lorsque j'essaie de déplacer les fichiers dans un sous-répertoire et de mettre en scène localement les changements, j'obtiens ...

fatal : Impossible d'écrire un nouveau fichier d'index

Cela se produit que je fasse toutes les actions dans le terminal ou que j'utilise une interface graphique comme SourceTree. De plus, l'un des fichiers est verrouillé et je ne peux pas supprimer le répertoire de travail tant que je ne me déconnecte pas et ne me reconnecte pas.

Pourquoi cela se produit-il ? Le verrou empêche-t-il quelque chose de se mettre en place ? Si c'est le cas, que/comment puis-je déverrouiller le fichier problématique sous OS X ? Le repo distant est Google Code, si cela fait une différence, bien que je ne pousse pas encore vers le repo distant. Tout est local.

314voto

Alexander Bird Points 5334

Dans mon cas, le disque manquait d'espace, et j'ai dû supprimer des fichiers du disque dur pour faire de la place.

74voto

theatlasroom Points 1086

J'ai le même problème depuis quelques jours. En gros, sans que je le sache, l'ensemble du dépôt a été déplacé vers un nouveau système de fichiers. Lorsque j'ai essayé d'exécuter git status, il a soudainement signalé que chaque fichier du dépôt avait été udpaté.

Solutions possibles

Donc, après avoir beaucoup cherché sur Google, j'ai essayé ce qui suit :

  • modification des permissions .git (même problème)
  • changer les permissions de .git/index (même problème)
  • git ajoute tous les changements au commit (même problème)
  • git rm-ing des fichiers supprimés, car ils signalaient des erreurs de noms de fichiers trop longs (même problème)
  • git reset (soft|Head|Hard) (même problème)
  • git clean (même problème)
  • désactivation de Windows defender (même problème)
  • mise à jour de git (même problème)
  • différents clients git (j'utilise gitbash) (même problème)
  • boire 2 cafés au lieu d'un seul (même problème)

tl:dr - solution sale

La seule chose qui a permis de résoudre le problème a été de copier le fichier d'index, de supprimer l'original et de renommer la copie.

Je sais que ce n'est pas vraiment une "solution" mais maintenant cela fonctionne comme par magie ><, avec tous les fichiers / branches intacts. Si quelqu'un sait pourquoi cela a pu fonctionner, qu'il le dise.

27voto

nonino Points 158

Dans mon cas, mettre en pause la synchronisation de Dropbox a résolu le problème.

20voto

user2465454 Points 201

J'ai eu le même problème sur un Mac. Il semble être causé par les ACL du système de fichiers. Essayez chmod -RN /path/to/repo pour effacer les ACL. Après avoir fait cela, j'ai pu valider les changements. En utilisant l'astuce consistant à copier le fichier d'index, à supprimer l'original et à replacer la copie, j'ai obtenu le même résultat.

20voto

Cornchip Points 334

Si vous avez configuré votre github dans une sorte de service de synchronisation en ligne, comme google drive ou dropbox, essayez de désactiver la synchronisation car le service de synchronisation essaie de lire/écrire dans le fichier alors que github essaie de faire de même, ce qui conduit à ce que github ne fonctionne pas correctement.

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