Cómo resolver el Error":mala índice Fatal:índice de archivo dañado" cuando el uso de Git

StackOverflow https://stackoverflow.com/questions/1115854

  •  12-09-2019
  •  | 
  •  

Pregunta

Después de git init, He añadido y cometió un par de archivos, se hicieron algunos cambios, añadidos y comprometido.Configurar el demonio git (que se ejecuta bajo Cygwin en windows xp) y clonado el repositorio una vez.Ahora, me sale este error con el repositorio clonado:

$ git status
error: bad index file sha1 signature
fatal: index file corrupt

Hay alguna forma de solucionar este problema, además de recibir una nueva copia del repositorio?

¿Fue útil?

Solución

Si el problema es con el índice como el área de ensayo para las confirmaciones (es decir .git/index), puede simplemente eliminar el índice (hacer una copia de seguridad si lo desea), y luego restaurar el índice a la versión en la última confirmación:

En OSX / Linux:

rm -f .git/index
git reset

En Windows:

del .git\index
git reset

(El comando reset anterior es el mismo que git reset --mixed HEAD)

Puede utilizar alternativamente nivel inferior href="http://git-scm.com/book/ch9-1.html" git read-tree en lugar de git reset.


Si el problema es con PACKFILE , puede recuperarla usando git index-pack.

Otros consejos

Es posible que haya dañado accidentalmente el archivo .git / índice con una sed en su raíz del proyecto (refactorización tal vez?) Con algo como:

sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr "$SEARCHPATERN" "$PROJECTROOT")

para evitar esto en el futuro, simplemente ignorar los archivos binarios con su grep / sed:

sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr --binary-files=without-match "$SEARCHPATERN" "$PROJECTROOT")

Esto suena como un mal clon. Usted podría intentar lo siguiente para obtener más información (posiblemente?):

git fsck --full

Yo tuve ese problema, y yo tratamos de ti arreglar con esto:

rm -f .git/index
git reset

PERO no funcionó. La solución?Por alguna razón me había otros .git carpetas en subdirectorios.Borrarlos .git carpetas (no el principal) y git reset de nuevo.Una vez que se han eliminado, todo funcionó de nuevo.

Esto funcionó para mí. Aunque tengo curiosidad de la razón por la que empecé a recibir los errores en el primer lugar. Cuando me conecté a cabo ayer, que estaba bien. Entrar en esta mañana, no lo era.

rm .git/index

git reset

Dado que las soluciones anteriores me dejó con problemas continuos, he utilizado esta solución opaca:

  1. clonar una nueva copia de la repo en otra parte
  2. copiar el directorio .git fresco en el repositorio (roto) que contenía los cambios que quería cometer

resolvieron el problema. Por cierto, hice un sed en la raíz del proyecto como @hobs adivinado. Aprendido la lección.

Nota para los usuarios submódulo git - las soluciones aquí no va a funcionar para usted como está

.

Digamos que usted tiene un repositorio padre llamado dev, por ejemplo, y su repositorio submódulo se llama api.

si está dentro de api y se obtiene el error mencionado en esta pregunta:

error: bad index file sha1 signature fatal: index file corrupt

El archivo index NO estará dentro de una carpeta .git. De hecho, el .git ni siquiera será una carpeta - que será un documento de texto con la ubicación de los datos reales .git para este repositorio. Probablemente algo como esto:

~/dev/api $ cat .git gitdir: ../.git/modules/api

Así que, en lugar de rm -f .git/index, tendrá que hacer esto:

rm -f ../.git/modules/api/index git reset

o, más generalmente,

rm -f ../.git/modules/INSERT_YOUR_REPO_NAME_HERE/index git reset

Este problema puede ocurrir cuando hay un directorio .git debajo de uno de los subdirectorios. Para solucionarlo, comprobar si hay otros directorios .git allí, y eliminarlos y vuelve a intentarlo.

Yo estaba frente mismo problema Cambiar el nombre de archivo de índice en .git / índice y el trabajo de reposición a continuación, git para mí.

rm -f .git/index
git reset

Más información en https: // www. chris-shaw.com/blog/quick-fix-for-git-corrupt-index

Esto es ridículo, pero me acaba de reiniciar mi máquina (mac) y el problema desapareció como si nunca hubiera pasado. Odio sonar como un individuo de la ayuda ...

También puede tratar de restaurar a la versión anterior del archivo (si está utilizando el sistema operativo Windows)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top