Git — поиск файла с его смещением

Я пытаюсь клонировать удаленный репозиторий Git.

Я делал это раньше без каких-либо проблем, но в этом проекте я получаю сообщение об ошибке

фатальный: у пакета есть неверный объект по смещению 289293315: раздувание вернуло -5

фатальный: сбой индексного пакета

Как узнать, какой файл вызывает ошибку? Я пробовал git show :289293315

Но это, видимо, не индекс:

фатальный: путь «289293315» не существует (ни на диске, ни в индексе).


person Zenoo    schedule 26.03.2018    source источник


Ответы (1)


Это ошибка в pack-файле. Пакетный файл содержит множество отдельных объектов Git, объединенных вместе и дельта-сжатых.

Чтобы найти файл поврежденного пакета, просмотрите каталог .git/objects/pack, который будет содержать один или несколько файлов .pack и соответствующие файлы .idx. Вы можете, например, запустить git index-pack -v для каждого .pack файла, чтобы найти проблемы. Вот что происходит сейчас (без -v).

Вы также можете использовать git unpack-objects -r после перемещения плохого файла .pack из самого репозитория, чтобы попытаться восстановить все оставшиеся хорошие объекты. Однако лучше всего, вероятно, найти хороший клон репозитория. Тем временем вы должны выяснить, почему ваш существующий пакетный файл испортился: что-то испортило файлы? Ваше запоминающее устройство выходит из строя?

person torek    schedule 26.03.2018