Вчера вечером я испытал отказ от питания при написании сообщения о фиксации. Когда я загрузил машину, я не смог выполнить коммит. Я запустил git reset
, добавил обратно измененные файлы и попытался снова, и получил следующее:
% 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
показывает следующее:
% 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
Я замечаю, что сообщения жалуются на разные объекты.
Я искал SO и Web и пробовал несколько разных вещей, но безрезультатно.
- У меня нет последней резервной копии.
- Клонирование репозитория в другой каталог не помогает; в новом репозитории имеются те же проблемы.
-
git stash
дает то же сообщение, что иgit commit
. Все остальные команды git работают нормально.
Как я могу сказать, что не так и исправить?
Изменить: git log
вывод как предлагается (только первые несколько строк):
% 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
Это небольшой персональный проект; Обычно я просто работаю (мастер), но в то время я экспериментировал (new_tokenize). 253b086 был последним успешным фиксацией перед сбоем питания.