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
reset
comando anterior es el mismo quegit reset --mixed HEAD
)Alternativamente, puede usar plomería de nivel inferior en
git read-tree
lugar 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 --keep
en 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 --keep
es una forma más segura degit reset --hard
;git reset --mixed
no 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 !).sed
con algo comofind .git/ -type f -exec sed -i 's/Legislator/Politician/g' {} \;
Esto podría ayudar si.git/
está tan dañado quegit reset
no funcionará. O tal vez desee restaurar su existente.git/index
sin eliminarlo. Esto fallará, por supuesto, si su código o índice original ya tenía algunos "Legisladores".sed
reemplazo de minew_string
con 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 reset
otra 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
sed
en 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
api
y obtiene el error mencionado en esta pregunta:error: bad index file sha1 signature fatal: index file corrupt
El
index
archivo NO estará dentro de una.git
carpeta. De hecho,.git
ni 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/api
Entonces, en lugar de
rm -f .git/index
, deberá 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
fuente
Este problema puede ocurrir cuando hay un
.git
directorio 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