Git-Repository beschädigt (falsche Header-Prüfung; loses Objekt ist beschädigt)

Ich hatte gestern Abend einen Stromausfall, als ich eine Commit-Nachricht schrieb. Als ich die Maschine hochfuhr, konnte ich das Festschreiben nicht abschließen. ich ranntegit reset, fügte die geänderten Dateien wieder hinzu und versuchte es erneut.

% git commit
error: inflate: data stream error (incorrect header check)
error: unable to unpack a94406345ac44982b00cf57b4b9660a35436637f header
fatal: a94406345ac44982b00cf57b4b9660a35436637f is not a valid object

git fsck offenbart Folgendes:

% git fsck --full
Checking object directories: 100% (256/256), done.
error: inflate: data stream error (incorrect header check)
error: unable to unpack 4346883490a0990e68db0187241abc1642765a73 header
error: inflate: data stream error (incorrect header check)
fatal: loose object 4346883490a0990e68db0187241abc1642765a73 (stored in .git/objects/43/46883490a0990e68db0187241abc1642765a73) is corrupt

Ich stelle fest, dass sich die Nachrichten über verschiedene Objekte beschweren.

Ich habe SO und das Web durchsucht und ein paar verschiedene Dinge ausprobiert, aber ohne Erfolg.

Ich habe keine aktuelle Sicherungskopie.Das Klonen des Repositorys in ein anderes Verzeichnis hilft nicht. Das neue Repository weist genau die gleichen Probleme auf.git stash gibt die gleiche Nachricht aus wiegit commit. Alle anderen Git-Befehle scheinen normal zu funktionieren.

Wie kann ich den Fehler erkennen und beheben?

Bearbeiten: git log Ausgabe wie vorgeschlagen (nur die ersten Zeilen):

% git log --oneline --decorate --all |head -n 8
253b086 (HEAD, new_tokenize) Normalized tokenizer interface slightly
0f2425a (master) Added procs to eval layer
a4d4c22 Added procedures as a type
d1e15ad (tag: v0.10) Added `if' form with tail call semantics
f94a992 (tag: v0.9) Completed environments
031116e Fixed bug where # on a line by itself caused segfault
3d8b09f Added environments, define and set!
01cc624 Put symbol table implementation into types.c

Dies ist ein kleines persönliches Projekt; Normalerweise arbeite ich nur in (master), aber ich habe zu der Zeit ein Experiment durchgeführt (new_tokenize). 253b086 war das letzte erfolgreiche Commit vor dem Stromausfall.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage