2012-04-09 9 views
51

Esta mañana, empecé a recibir este error de git:archivo de índice menor de lo esperado

fatal: índice de archivo más pequeño de lo esperado

fatal: git status --porcelain no

¿Alguna idea de lo que está sucediendo y cómo resolverlo?

+0

¿Has probado esto http://vertis.github.com/2012/01/24/git-fatal-index-file-smaller-than-expected.html –

+0

Sí lo intenté antes de publicarlo El problema estaba en mis submódulos que seguían corrompiendo mi archivo de índice (no sé por qué). – karellm

+0

@karellm ¿Has averiguado por qué sucedía esto? – crmpicco

Respuesta

64

El archivo de índice se ha dañado, pero es fácil de volver a crear. Basta con retirar, y volver a agregar los archivos en el directorio de trabajo:

rm .git/index 
git add . 
+0

Como dije anteriormente, no funcionaba debido a un conflicto con un submódulo que corrompía mi índice una y otra vez ... Quité el submódulo, eliminé el índice y agregué todos. Finalmente funcionó. ¡Gracias! – karellm

+0

¿Por qué sucede esto? He tenido esto ocurrir dos veces en la última quincena y no puedo ver una razón para ello. – crmpicco

+2

Esto no funcionó para mí. Antes de este error, tenía una copia de trabajo en su mayoría limpia. Después de eliminar el archivo de índice y ejecutar 'git add .' se comportó como si cada archivo fuese nuevo y necesitara una confirmación. – Mark

54

Si desea mantener los cambios locales, utilice la siguiente:

$ rm .git/index 
$ git reset HEAD . 

> Unstaged changes after reset: 
    modified foo.txt 
    modified bar.txt 
+0

¿Alguna idea de por qué sucede esto? Me ha pasado unas 4-5 veces en los últimos quince días. – crmpicco

+0

Esta respuesta es la mejor aquí. Además, si usa submódulos de git: también elimine esos archivos de índice (se encuentran en '.git/modules/src'). Esto me hizo preguntarme por qué el error todavía ocurría después de eliminar el archivo de índice (principal). – Graftak

Cuestiones relacionadas