Question Comment résoudre "Erreur: mauvais index - Fatal: fichier d'index corrompu" lors de l'utilisation de Git


Après git init, J'ai ajouté et commis quelques fichiers, apporté quelques modifications, ajouté et engagé. Configurez le démon git (exécuté sous Cygwin sous WinXP) et clonez le référentiel une fois. Maintenant, j'obtiens cette erreur avec le dépôt cloné:

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

Est-il possible de résoudre ce problème, autre que d'obtenir une nouvelle copie du référentiel?


467
2017-07-12 11:23


origine


Réponses:


Si le problème est avec l'index comme la zone de transit pour les commits (c'est à dire. .git/index), vous pouvez simplement supprimer l'index (effectuez une copie de sauvegarde si vous le souhaitez), puis restaurer l'index dans la dernière validation:

Sur OSX / Linux:

rm -f .git/index
git reset

Sur Windows:

del .git\index
git reset

(Le reset commande ci-dessus est la même que git reset --mixed HEAD)

Vous pouvez aussi utiliser le niveau inférieur plomberie  git read-tree au lieu de git reset.


Si le problème est avec indice pour packfile, vous pouvez le récupérer en utilisant git index-pack.


950
2017-07-12 12:28



Vous avez peut-être accidentellement corrompu le fichier .git / index avec un sed sur la racine de votre projet (peut-être le refactoring?) Avec quelque chose comme:

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

pour éviter cela à l'avenir, ignorez simplement les fichiers binaires avec votre grep / sed:

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

70
2018-03-19 07:57



Cela ressemble à un mauvais clone. Vous pouvez essayer ce qui suit pour obtenir (éventuellement?) Plus d'informations:

git fsck --full

12
2017-07-12 11:36



J'ai eu ce problème, et j'essaye de résoudre ce problème avec:

rm -f .git/index
git reset

Mais cela n'a pas fonctionné. La solution? Pour une raison quelconque, j'avais d'autres dossiers .git dans les sous-répertoires. Je supprime ces dossiers .git (pas le principal) et git reset encore. Une fois qu'ils ont été supprimés, tout a fonctionné à nouveau.


7
2017-07-24 13:23



Cela a fonctionné pour moi. Bien que je sois curieux de la raison pour laquelle j'ai commencé à recevoir les erreurs en premier lieu. Quand je me suis déconnecté hier, tout allait bien. Connectez-vous ce matin, ce n'était pas.

rm .git/index

git reset

2
2017-08-05 12:32



Ce problème peut se produire quand il y a un .git répertoire sous l'un des sous-répertoires. Pour y remédier, vérifiez s'il existe d'autres répertoires .git, supprimez-les et réessayez.


1
2018-05-31 19:48



Puisque les solutions ci-dessus m'ont laissé avec des problèmes continus, j'ai utilisé cette solution terne:

  1. cloner une nouvelle copie du repo ailleurs
  2. copier le nouveau répertoire .git dans le repo (cassé) qui contenait les modifications que je voulais commettre

A fait le tour. Btw, j'ai fait un sed sur la racine du projet comme @hobs deviné. J'ai appris ma leçon.


1
2018-02-10 22:18



Note pour les utilisateurs de sous-modules git - les solutions ici ne fonctionneront pas pour vous en l'état.

Disons que vous avez un référentiel parent appelé dev, par exemple, et votre référentiel de sous-modules s'appelle api.

si vous êtes à l'intérieur de api et vous obtenez l'erreur mentionnée dans cette question:

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

le index fichier ne sera pas à l'intérieur d'un .git dossier. En fait, le .git ne sera même pas un dossier - il s'agira d'un document texte avec l'emplacement des données .git réelles pour ce référentiel. Probable quelque chose comme ça:

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

Donc, au lieu de rm -f .git/index, vous devrez faire ceci:

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

ou, plus généralement,

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


1
2018-02-12 20:19



rm -f .git/index
git reset

Plus d'infos à https://www.chris-shaw.com/blog/quick-fix-for-git-corrupt-index


-1
2017-11-18 16:18