32 votes

git problème : fatal: Impossible d'écrire dans le nouveau fichier d'index

J'ai déjà un projet qui a été géré sous git. J'ai récemment eu à faire au sol jusqu'à la reconstruction de l'ordinateur (mac OS X Snow Leopard), et le retour au projet, git peut suivre les modifications dans le projet, mais je ne peux pas sauver quoi que ce soit à git. Je reçois le message d'erreur dans le titre, lorsque j'essaie :

Dans-iMac-335:[app-name-obscured] apple$ git add app/models/*
fatal: Unable to write new index file

Quelle est la meilleure façon de se sortir de cette situation? Il y a un heroku version du dépôt de cela, mais il est très en décalage avec celui-ci. sans doute je pourrais utiliser un nouveau clone de base, et la mise à jour de chaque fichier, mais qui semble plus laborieux et sujettes à erreur.

Qu'est-ce que git cherche ici qu'il ne peut pas le trouver, et s'il y a un changement qui permettra de les restaurer?

BTW, les autorisations de fichier sont corrects à partir de ce que je peux dire - les fichiers sous le contrôle et la .git composants sont détenues par moi avec rw accès...

63voto

Timmy Points 491

J'ai juste couru dans la même situation, il s'est avéré que mon système était plein.

4voto

Rudi Points 8756

Vous avez accès en écriture .git (=vous pouvez créer de nouveaux fichiers et de modifier celles existantes)? Si non, alors ajuster les autorisations de fichier.

Si vous disposez des autorisations d'écriture, il semble que vous avez trouvé un bug. Vous pouvez essayer de récupérer par

  1. créer un clone à partir de votre copie de travail actuelle
  2. supprimer tous les fichiers de la copie de travail de clone
  3. copiez tous les wc des fichiers à partir de votre copie de travail vers le clone (et de ne pas copier .git)
  4. essayez de commettre quelque chose dans le clone.

Lors de la dernière étape fonctionne, vous devez configurer la télécommande branches à partir de votre repo pour le clone, et puis vous pouvez utiliser la cloné pensions que votre nouvelle copie de travail.

3voto

Scott Silver Points 21

J'ai été à l'aide de Parallels Ubuntu sur mon Mac. Je pourrais git init, mais pas git add. Je crois que le problème est que la commande git add nécessite une synchronisation atomique de la sous-base de données de git. Et depuis le système de fichiers que j'utilisais était en fait sur mon Mac et Parallels a l'exportation à partir de mon Mac via un partage réseau. Je crois que cela signifie que git ne pouvais pas faire ce qu'il voulait. Déplacer les fichiers localement résolu le problème (Dans mon cas, cela a été facile, car j'ai été en utilisant DropBox sur mon Mac, je viens d'installer DropBox sur mon Ubuntu cours d'exécution Parallèles)

2voto

Val Dubrava Points 26

J'ai eu un similaires problème avec SFTP Lecteur Réseau (gratuit). La solution est la suivante: remplir chekcbox "Supprimer cible avant de passer" dans les Paramètres du Profil de SFTP Lecteur Réseau.

1voto

Dave Halter Points 3204

Si vous utilisez sshfs, ajoutez l'option -o workaround=rename, comme décrit ici: http://alan.lamielle.net/2009/07/08/git-over-sshfs

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