2010-09-15 4 views

Antwort

27

Da diese thread illustrates, ist dies in der Regel ein Speicherplatz Ausgabe:

$ git status 
fatal: unable to write new_index file 

One cause of this that I found was that my file system had run out of space.
Finding large directories with something like the following helped clean up some log files that had run wild :

$ du -h/| grep ^[0-9.]*G 

Hinweis: Sie es auch für

Problem still remained so I ran File Monitor from Sysinternals Suite.
It seems that Eclipse is accessing index file constantly and blocks command line git

Yeah, looks like Windows Defender strikes again. I always forget to disable that damn thing. I can't believe how broken it is. Destroys Blu-ray playback at home, breaks Git at work...

+3

+1 für den Windows Defender-Teil! http://windows.microsoft.com/en-US/windows-vista/Turn-Windows-Defender-on-or-off hat den Trick –

+0

auch Sie können die Berechtigungen (in Windows) auf dem GIT-Ordner durch Unchecking ändern schreibgeschützt –

+0

Deshalb können Sie mit AV wie MSE Ordner auswählen, die nicht überwacht werden sollen. –

3

I-Lösung wurde gefunden, zu schreiben. Ich muss nur etwas Speicherplatz freigeben.

+1

Ich schrieb die gleiche Sache;) – VonC

+0

Ja, 0 Bytes frei auf meiner Festplatte verursachte diesen Fehler. –

6

I wurde mit dem gleichen Fehler während ich einen git repo verschmelzenden die sshfs montiert war. Es gab nirgendwo Platzmangel.

In meinem Fall war die Lösung, eine -o Abhilfe = Umbenennen Option zum sshfs mount Befehl hinzuzufügen.

Wie so: sshfs -o idmap = user -o uid = [lokal uid] -o gid = [lokal gid] -o Abhilfe = umbenennen [host]: [einhängepunkt]

14

Wenn Sie mit TortoiseGit, dieser Fehler (oder in jüngerer Zeit: Fehler. Kann nicht Index schreiben) ist sehr wahrscheinlich verursacht, indem TortoiseGit Symbol Overlays aktiviert. Um überlagerten Symbole zu deaktivieren, gehen Sie zu:

TortoiseGit> Einstellungen> Icon-Overlays

und setzen Der Status Cache zu Keine. Dies könnte in einer zukünftigen Version von TortoiseGit behoben werden, aber für den Moment scheint es üblich zu sein.

+0

Das war der Grund für das Problem für mich. Vielen Dank. – TheXenocide

+0

Das war auch in meinem Fall die Ursache. Vielen Dank, dass Sie diese Antwort gepostet haben. – Jon

+0

Yup, das war es für mich - irgendwie. Ich musste den 'TGitCache.exe' Prozess wirklich töten, aber das tat den Trick. –

3

Ich habe jede Lösung hier verfolgt und keiner von ihnen hat funktioniert. Ich habe keinen Mangel an Speicherplatz, ich habe Windows Defender deaktiviert, Icon-Overlays deaktiviert und was nicht. Ich hatte Tonnen von Dateien zu importieren und vielleicht war dies das Problem (ich hatte boost Bibliotheken unter anderem).

Ich öffnete einfach "Git Bash" und gab eine Nummer git add und eine git commit und alles ging gut. Das hat etwas mit TortoiseGit zu tun, aber ich bin mir nicht sicher was. Es scheint auf eine große Anzahl von Dateien oder große Verzeichnistiefe zu ersticken.

0

benutzen ich Unlocker auf .git\index.lock alle Griffe zu entsperren, die von anderen Prozessen offen gehalten werden. In meinem Fall war es TGitCache.exe.

1

ich dieses Problem hatte, aber ich konnte mit msysgit begehen.Ich aktualisierte tortoisegit und bemerkte auch, dass meine msysgit-Version nicht mit Tortoise-Git synchronisiert war. Ich bin mir nicht sicher, ob die neueste Version es behoben hat oder ob es verschiedene Versionen von Tortoise und MSYSGIT hatte. Wie auch immer, noch etwas zu überprüfen. Alles begann nach der Aktualisierung sie beide zu TortoiseGit 1.7.10.0 git Version 1.7.10.mysgit.1

3

Ich habe diesen Fehler mit Cygwin und git-svn. Die Lösung, die für mich gearbeitet wurde Garbage Collection zu tun (seltsam, wie es damals schien):

 

$ git gc 

2

ich gleiches Problem hatte. In meinem Fall oben Lösungen hat nicht funktioniert.

Der Grund für diesen Fehler ist, dass die Datei .git/index aus einem unbekannten Grund beschädigt wurde. Ich habe die Datei einfach umbenannt und starte 'git add'. Befehl von Git Bash und es hat funktioniert.

Ich hoffe, das hilft jemandem.

+0

Das hat den Trick für mich gemacht. Aber anstatt "git add." Auszuführen, habe ich 'git reset' ausgeführt, was die Indexdatei neu generierte, ohne alle Änderungen dem Staging-Bereich hinzuzufügen. Ich hatte SourceTree über eine SSHFS-Mount in den Repo geöffnet, während gleichzeitig mit ihm über das Terminal interagieren; etwas, das die Datei beschädigt haben könnte. – sffc

0

Für mich war es ein Dateisperrungsproblem.

es zu lösen I:

  1. die Indexdatei kopiert (im versteckten ".git" Ordner)
  2. die ursprüngliche
  3. Umbenannt die Kopie zurück zu 'index' Gelöschte

Hoffe, das hilft!

Verwandte Themen