У меня проблема с репозиторием Git, хранящимся в GitLab.Кажется, это проблема с репозиторием, затрагивающая только этот конкретный репозиторий, так как все другие проекты, размещенные на GitLab, работают нормально.
Кажется, я могу лично выдвигать, извлекать и извлекать ветви, используя GitKraken, но когда я пытаюсьвытащить из Git Bash я получаю следующее:
$ git pull
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
error: Could not read bb5a805503a3da247038200df7002f452a8781e9
fatal: bad tree object bb5a805503a3da247038200df7002f452a8781e9
error: failed to run repack
У всех людей, сотрудничающих со мной в этом же проекте, возникают похожие проблемы при попытке вытащить:
$ git pull
remote: Enumerating objects: 112, done.
remote: Counting objects: 100% (112/112), done.
remote: Compressing objects: 100% (102/102), done.
fatal: pack has bad object at offset 8105548: inflate returned -5
fatal: index-pack failed
И это то, что мы всеполучить при попытке клонировать хранилище в новом месте:
remote: Enumerating objects: 4364, done.
remote: Counting objects: 100% (4364/4364), done.
remote: Compressing objects: 100% (1622/1622), done.
fatal: pack has bad object at offset 56589977: inflate returned -5
fatal: index-pack failed
Вот что мы попробовали:
- Проверено несколько компьютеров
- Проверено несколько пользователей
Я подозреваю, читая подобные вопросы, такие как этот , что наш репозиторий сломан.Однако я не понимаю, почему я могу работать с ним через GitKraken.С его графическим интерфейсом я успешно объединил две ветви и отправил последние коммиты на сервер.
У кого-нибудь есть объяснение, в чем может быть проблема?
Редактировать: попытка исправить хранилище
Следуя этим инструкциям содержится в ссылке, которую я разместил, а также в ответе ниже я запустил команду git fsck --full
, чтобы проверить состояние ссылок репозитория.То, что я нашел, не обнадеживает, так как кажется, что многие ссылки не работают.
Checking object directories: 100% (256/256), done.
Checking objects: 100% (3769/3769), done.
broken link from commit f42ccacb8101ef49493aca18089378697490bb66
to tree e461e3cbe3221cd5ba7035222aa716dcabb63713
broken link from commit 2fe8ac2b06d8e8f37b354c395f60a77f0ab1f9a9
to tree 93b9618cc159c1b18aba319e8f7e3e5e8f7b57df
broken link from commit 16d23305969b3a40316618b952b2e5ff1ffedbf6
to tree 80c4012d9f3b3f51f17932dec80e740bc4e5a1d6
broken link from tree 867941d734b41a5ce800dff6ea7dbfca30787e15
to tree bb5a805503a3da247038200df7002f452a8781e9
broken link from tree e16211709ea4ce02a89bbe87d30a410dac65e372
to blob b6eb83a9e4f16fe49a0eb9bfea0bf6dfce9adcbc
broken link from tree e16211709ea4ce02a89bbe87d30a410dac65e372
to blob a593c8f43faacf41bc93c98dbb347e673cd47f3f
broken link from tree e16211709ea4ce02a89bbe87d30a410dac65e372
to blob 652245900beb49246e58f5c216dbcf161f727e2d
broken link from tree e16211709ea4ce02a89bbe87d30a410dac65e372
to blob a7998441f7435126feb6b35e9b4b575bd193d6d2
, за которым следует длинный список строк dangling commit
и dangling blob
с 8 экземплярами missing
:
[...]
missing tree 80c4012d9f3b3f51f17932dec80e740bc4e5a1d6
[...]
missing blob a593c8f43faacf41bc93c98dbb347e673cd47f3f
[...]
[6 more]
Похоже, что восстановление поврежденных файлов вручную заняло бы довольно много времени.
Редактирование # 2: локально исправлено хранилище
Я установил и запустил git-repair
в своей локальной копии хранилища и фактически исправил ее.Если я сейчас запускаю git fsck --full
, я вижу только «здоровые» сообщения в ответ.Нет больше неработающих ссылок.
Однако, неважно, если я git push --force
до origin
, кажется, origin
остается неработающим.Одно странное обновление в том, что теперь я могу успешно использовать git clone
, тогда как все мои коллеги все еще не могут.Как это может быть?
И самое главное, есть ли способ, которым я действительно могу запустить git-repair
на origin
?
Редактировать # 3: Сделано новое происхождение
После локального исправления моего репозитория (и проверки того, что git fsck
не дает недостающих ссылок), я переместил все соответствующие ветки в GitLab.Я думал, что так и будет, но, к сожалению, проблема сохраняется.
Паттерн, который я начинаю замечать, заключается в том, что мы все, похоже, можем clone
из Ubuntu (используя Git Bash или GitKraken), но не в Windows 10 (ни используя Git Bash, ни GitKraken).
Читая по всему сайту, я нашел вопрос о том, как возможно, что Git работает на Linux, но не на Windows.Там они объяснили, что это была проблема, связанная с Git (но это было более 1 года назад).Имеет ли смысл что-то подобное произошло?Я должен сказать, что я скептически отношусь к этому, потому что другие репозитории, с которыми мы тестировали, отлично работают на Windows.
Редактирование # 4: протестировано с более старыми версиями Git для Windows
Текущая версия 2.19.Я пробовал это на 2.18 и 2.9 (последний датируется 2016 годом), но я получаю ту же ошибку.
Редактирование # 5: попытался клонировать локально успешно
После предложения о проблема GitHub Я написал на git-for-windows
, я пытался использовать git clone
из копии репозитория на USB-накопителе.Это сработало.Проблема, похоже, ограничена Git + Windows + GitLab или Git + Windows + SSH.