2010-09-15 14 views

Respuesta

27

Como este thread illustrates, esto es por lo general un problema de espacio en disco:

$ 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 

Nota: también se puede ver por

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 para la porción de Windows Defender! http://windows.microsoft.com/en-US/windows-vista/Turn-Windows-Defender-on-or-off hizo el truco –

+0

También puede cambiar los permisos (en Windows) en la carpeta .git por desmarcando el –

+0

de solo lectura Es por eso que AV like MSE le permite seleccionar carpetas que no monitorear. –

3

he encontrado. Solo necesito liberar algo de espacio en el disco.

+1

estaba escribiendo la misma cosa;) – VonC

+0

Sí, 0 bytes libres en mi disco estaba causando este error. –

6

que estaba recibiendo el mismo error mientras estaba Fusión de un repositorio git que fue sshfs montados. No había escasez de espacio en ninguna parte.

En mi caso, la solución fue agregar una opción -o workaround = rename al comando de montaje sshfs.

así: sshfs -o idmap = UID -o user = [uid lokal] -o gid = [lokal GID] -o solución renombrar = [host]: [punto de montaje]

14

Si está utilizando TortoiseGit, este error (o más recientemente: error: No se puede escribir el índice.) es muy probable que se deba a que tiene superposiciones del icono TortoiseGit activado. Para desactivar los íconos superpuestos, vaya a:

TortoiseGit> Configuración> icono de superposiciones

y establecer caché de estado a Ninguno. Esto puede solucionarse en una versión futura de TortoiseGit, pero por ahora parece ser común.

+0

Esta fue la causa del problema para mí. Muchas gracias. – TheXenocide

+0

Esta fue la causa en mi caso también. Gracias por publicar esta respuesta. – Jon

+0

Sí, esto fue para mí, más o menos. De hecho, tuve que matar el proceso 'TGitCache.exe', pero fue suficiente. –

3

He seguido cada solución aquí y ninguna de ellas funcionó. No tengo escasez de espacio en disco, he desactivado Windows Defender, superposiciones de iconos desactivados y otras cosas. Tenía toneladas de archivos para importar y tal vez esto estaba causando el problema (tenía bibliotecas boost, entre otras cosas).

Simplemente abrí "Git Bash" y emití un número de git add y un git commit y todo salió bien. Esto tiene algo que ver con TortoiseGit, pero no estoy seguro de qué. Parece ahogarse en una gran cantidad de archivos o en una gran profundidad de directorio.

0

He utilizado Unlocker en .git\index.lock para desbloquear cualquier control que otros procesos mantengan abiertos. En mi caso fue TGitCache.exe.

1

Estaba teniendo este problema, pero pude comprometerme con msysgit.Actualicé tortoisegit, y también noté que mi versión de msysgit no estaba sincronizada con tortoise git. No estoy seguro si la última versión lo arregló, o si fue debido a tener diferentes versiones de tortuga y msysgit. De todos modos, otra cosa para comprobar. Todo comenzó a funcionar después de actualizarlos a TortoiseGit 1.7.10.0 git versión 1.7.10.msysgit.1

3

Recibí este error usando Cygwin y git-svn. La solución que funcionó para mí era hacer la recolección de basura (por extraño que parecía en ese momento):

 

$ git gc 

2

que tenía el mismo problema. En mi caso, las soluciones anteriores no funcionaron.

El motivo de este error es que el archivo .git/index estaba dañado por algún motivo desconocido. Acabo de renombrar el archivo a otra cosa y ejecutar el 'git add'. comando de git bash y funcionó.

Espero que esto ayude a alguien.

+0

Esto hizo el truco para mí. Pero en lugar de ejecutar 'git add .', ejecuté' git reset', que volvió a generar el archivo de índice sin agregar innecesariamente todos los cambios al área de ensayo. Hice que SourceTree se abriera al repositorio sobre un montaje SSHFS mientras simultáneamente interactuaba con él a través del terminal; algo puede haber causado que el archivo se corrompa. – sffc

0

Para mí fue un archivo de tema de bloqueo.

para resolverlo I:

  1. copiado el archivo de índice (que se encuentra en la carpeta oculta ".git")
  2. elimina el original
  3. cambiado el nombre de la copia de nuevo a 'índice'

Espero que esto ayude!

Cuestiones relacionadas