2012-07-20 21 views
5

En mi repositorio de git realicé una conversión utf-8 de muchos archivos, pero solo debajo del directorio .git, por lo que no se tocó el directorio .git. Antes de esta conversión, creé una nueva rama de prueba, pero ahora ya no puedo usar mi repositorio, no puedo volver al maestro. Cuando hago:git status me da un error: bad index file sha1 signature

git status 

o cualquier otro comando git me sale:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile 

busqué al respecto y conocer el comando:

rm -f .git/index 

y después de esto:

git reset 

pero esto no lo hizo t ayuda. No entiendo lo que está mal. Luego eliminé el "submódulo" core/kimai-mobile y de repente pude volver a usarlo.

Tenía este otro repositorio de git en este directorio en el que destruí el otro archivo de índice con mi conversión. Mi problema fue que pensé que el archivo de índice de repositorios "principales" estaba destinado.

Ahora se está trabajando de nuevo :)


Mi pregunta es, ¿por qué git mirar en este submódulo aunque tenía toda la carpeta de este submódulo en mi Ignorelist?

Este es el archivo de mi ignorar git "principal":

.gitignore 

... 
# kimai mobile 
kimai-mobile 
... 
+0

¿Cuál es la pregunta? –

Respuesta

6

submódulos son repositorios Git completos. Por lo tanto, pueden contener el subdirectorio .git (o al menos un enlace).

De modo que si utiliza su herramienta en todos los archivos además de .git en el directorio raíz del repositorio raíz, aún puede corromper algunos archivos .git internos en los submódulos.