Después git init, agregué y comprometí algunos archivos, hice algunos cambios, agregué y comprometí. Configure el demonio git (que se ejecuta bajo Cygwin en WinXP) y clone el repositorio una vez. Ahora, recibo este error con el repositorio clonado:
$ git status
error: bad index file sha1 signature
fatal: index file corrupt
¿Hay alguna forma de arreglar esto, aparte de obtener una nueva copia del repositorio?
git
corruption
Numero 8
fuente
fuente

Respuestas:
Si el problema es con el índice como el área de preparación para las confirmaciones (es decir
.git/index), simplemente puede 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:
En Windows:
(El
resetcomando anterior es el mismo quegit reset --mixed HEAD)Alternativamente, puede usar plomería de nivel inferior en
git read-treelugar degit reset.Si el problema es con el índice para el paquete de archivos , puede recuperarlo usando
git index-pack.fuente
:w!en un:Gstatus(de fugitive.vim). Esta respuesta me ahorró mucho tirón del cabello.erase /s .git\index, yo también necesitaba unerase .git\index.lock.git reset --keepen su lugar? En la hoja de trucos de Tower Git se explica como: Restablezca el puntero HEAD a un commit anterior y conserve los cambios locales no confirmadosgit reset --keepes una forma más segura degit reset --hard;git reset --mixedno toca workdir en absoluto.Es posible que haya dañado accidentalmente el archivo .git / index con un sed en la raíz de su proyecto (¿quizás refactorizando?) Con algo como:
para evitar esto en el futuro, simplemente ignore los archivos binarios con su grep / sed:
fuente
.git/index, siempre puede eliminarlo y volver a crearlogit reset(--hard¡ sin !).sedcon algo comofind .git/ -type f -exec sed -i 's/Legislator/Politician/g' {} \;Esto podría ayudar si.git/está tan dañado quegit resetno funcionará. O tal vez desee restaurar su existente.git/indexsin eliminarlo. Esto fallará, por supuesto, si su código o índice original ya tenía algunos "Legisladores".sedreemplazo de minew_stringcon miold_string.Tuve ese problema y trato de solucionarlo con esto:
Pero no funcionó. La solución ? Por alguna razón, tenía otras carpetas .git en subdirectorios. Elimino esas carpetas .git (no el principal) y
git resetotra vez. Una vez que se eliminaron, todo volvió a funcionar.fuente
Esto suena como un mal clon. Puede intentar lo siguiente para obtener (¿posiblemente?) Más información:
fuente
Como las soluciones anteriores me dejaron con problemas continuos, utilicé esta solución aburrida:
Hizo el truco. Por cierto, hice un
seden la raíz del proyecto como @hobs supuso. Aprendí mi lección.fuente
Esto funcionó para mí. Aunque tengo curiosidad por la razón por la que comencé a recibir los errores en primer lugar. Cuando cerré sesión ayer, estaba bien. Inicie sesión esta mañana, no fue así.
fuente
Nota para los usuarios de submódulos git: las soluciones aquí no funcionarán para usted tal cual.
Supongamos que tiene un repositorio principal llamado
dev, por ejemplo, y se llama a su repositorio de submódulosapi.si está dentro
apiy obtiene el error mencionado en esta pregunta:error: bad index file sha1 signature fatal: index file corruptEl
indexarchivo NO estará dentro de una.gitcarpeta. De hecho,.gitni siquiera será una carpeta, será un documento de texto con la ubicación de los datos .git reales para este repositorio. Probablemente algo como esto:~/dev/api $ cat .git gitdir: ../.git/modules/apiEntonces, en lugar de
rm -f .git/index, deberá hacer esto:rm -f ../.git/modules/api/index git reseto, más generalmente,
rm -f ../.git/modules/INSERT_YOUR_REPO_NAME_HERE/index git resetfuente
Este problema puede ocurrir cuando hay un
.gitdirectorio debajo de uno de los subdirectorios. Para solucionarlo, verifique si hay otros directorios .git allí, elimínelos e intente nuevamente.fuente
Hice un simple truco. Clono el repositorio en una nueva carpeta. Copió la carpeta .git de la nueva carpeta a la carpeta antigua del repositorio, reemplazando .git allí.
fuente
Más información en https://www.chris-shaw.com/blog/quick-fix-for-git-corrupt-index
fuente
Esto es ridículo, pero acabo de reiniciar mi máquina (mac) y el problema desapareció como si nunca hubiera sucedido. Odio sonar como un tipo de apoyo ...
fuente
También puede intentar restaurar a la versión anterior del archivo (si está utilizando Windows OS)
fuente