811 Stimmen

Behebung der Fehlermeldung "Error: bad index - Fatal: index file corrupt" bei Verwendung von Git

Nach git init Ich fügte ein paar Dateien hinzu und übertrug sie, nahm einige Änderungen vor, fügte sie hinzu und übertrug sie. Ich richtete den Git-Daemon ein (der unter Cygwin auf WinXP läuft) und klonte das Repository einmal. Jetzt erhalte ich diesen Fehler mit dem geklonten Repository:

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

Gibt es eine andere Möglichkeit, dieses Problem zu beheben, als eine neue Kopie des Repositorys zu erstellen?

0 Stimmen

Ist dies im geklonten Repository oder im ursprünglichen Repository? Hat der Befehl clone irgendwelche Fehler ausgegeben?

17voto

Eighty Punkte 109

Das hat bei mir funktioniert. Allerdings bin ich neugierig, warum ich die Fehler überhaupt erst bekommen habe. Als ich mich gestern abmeldete, war es in Ordnung. Als ich mich heute Morgen anmeldete, war es nicht mehr so.

rm .git/index

git reset

0 Stimmen

Das hat bei mir funktioniert, obwohl es alle hinzugefügten Dateien aus Git entfernt hat. Ich musste für diese Dateien git add ausführen

0 Stimmen

Rm' wird nicht als internes oder externes Kommando, lauffähiges Programm oder Batch-Datei erkannt!!!!!!!!!!!!!!!!!!

8voto

jenming Punkte 799

Hinweis für Benutzer von Git-Submodulen - die hier vorgestellten Lösungen werden für Sie nicht funktionieren.

Nehmen wir an, Sie haben ein übergeordnetes Repository namens dev zum Beispiel, und Ihr Submodul-Repository heißt api .

wenn Sie sich innerhalb von api und Sie erhalten den in dieser Frage erwähnten Fehler:

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

El index Datei befindet sich NICHT innerhalb einer .git Ordner. In der Tat ist der .git wird nicht einmal ein Ordner sein - es wird ein Textdokument mit dem Speicherort der echten .git-Daten für dieses Repository sein. Wahrscheinlich so etwas wie das hier:

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

Also, statt rm -f .git/index müssen Sie dies tun:

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

oder, allgemeiner ausgedrückt,

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

5voto

Nick Kuijpers Punkte 257

Dieses Problem kann auftreten, wenn es eine .git unterhalb eines der Unterverzeichnisse. Um das Problem zu beheben, prüfen Sie, ob es dort andere .git-Verzeichnisse gibt, entfernen Sie diese und versuchen Sie es erneut.

1 Stimmen

Mehrere andere Antworten haben diese Informationen bereits geliefert.

1voto

Ash Punkte 1836

Keine der vorhandenen Antworten hat bei mir funktioniert.

Ich habe worktrees verwendet, daher gibt es keinen .git-Ordner.

Sie müssen zurück zu Ihrem Haupt-Repository gehen. Dort löschen Sie .git/worktrees/<Name_des_Baums>/index

Führen Sie dann git reset wie in den anderen Antworten beschrieben aus.

1voto

Moein Qureshi Punkte 1

Das Klonen des entfernten Projektarchivs und das Ersetzen des .git-Ordners in das problematische lokale Verzeichnis löste das Problem.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X