#git
#git
Вопрос:
Я запускаю Git в Windows, и вчера я мог зафиксировать в своем репозитории, но теперь я получаю следующие ошибки при попытке зафиксировать или запустить git status:
ошибка: file .git/objects/pack/pack-{some_hash_here}.pack слишком короткое, чтобы быть файлом пакета
предупреждение: не удается получить доступ к packfile .git/objects/pack/pack-{some_hash_here}.pack
Файл находится в файловой системе здесь (у меня есть полные права доступа к файлу):
Вот полное сообщение об ошибке:
Что это значит? Как я могу это исправить? Мой поиск в Google не помогает; любая помощь приветствуется!
Обновление: запустил git fsck —verbose, и я получаю аналогичную ошибку.
Комментарии:
1. Похоже, что что-то было повреждено.
Ответ №1:
Запустите git fsck
, чтобы посмотреть, что сообщает инструмент — по всей вероятности, один из ваших файлов пакета был удален или поврежден. Если это так, то самый простой способ исправить это (вместо того, чтобы пытаться найти резервную копию файла пакета) — сохранить внесенные вами изменения в репозитории ЗА пределами каталога git, затем удалить каталог и повторно клонировать его из удаленного репозитория.
Это приведет к повторной генерации файлов пакета и всего остального, что вам нужно, чтобы вы могли затем перенести свои изменения обратно и зафиксировать их.
Ответ №2:
После перезагрузки моего компьютера и повторного подключения диска теперь это работает.
ETA: Я смог подключиться по протоколу RDP к серверу (как тот же пользователь) и нормально запустить git, пока ошибка продолжала возникать локально.
Ответ №3:
У меня была такая же проблема при использовании Git из Windows на подключенном диске Linux. Я запустил «git gc» из Linux, и это решило проблему.