GIT ошибка pull - удаленный объект поврежден

$ git pull

remote: fatal: object 21f3981dd35fccd28febabd96f27241eea856c50 is corrupted
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header

Любые идеи, почему это не удается?
Когда я запускаю git --bare fsck-objects --full, я вижу только висячие ссылки, но не сломанные ссылки. Также git gc никак не помогло. Когда я отказываюсь или тяну от другого клона, я не вижу этой ошибки.

40
задан Senthil A Kumar 13 нояб. '10 в 3:59
источник поделиться
7 ответов

Как сказал Джулиан, см. https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header

Это действительно может быть проблема с памятью, и чтобы мы не потеряли решение здесь:

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m" 
git config --global pack.threads "1"
23
ответ дан cazcade_neil 30 нояб. '13 в 1:08
источник поделиться

Добавление git config --global pack.window "0" работало для меня... наряду со следующим

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m" 
git config --global pack.threads "1"

Причина:

Git clone сжимает данные при клонировании репозитория

Он сжимает данные на сервере до получения данных/файлов.

Если на сервере не хватает памяти, вы получите указанную выше ошибку при упаковке объектов

Вы можете исправить эту проблему, сделав git клонировать репозиторий, не упаковывая объекты на сервере со следующим.

git config --global pack.window "0"

15
ответ дан logan 01 февр. '15 в 17:44
источник поделиться

Похоже, что ответ находится в комментариях: git fsck

11
ответ дан robrich 08 мая '12 в 7:51
источник поделиться

Только что получил эту ошибку и потратил полдня на все, что описано в сообщении: fsck, repack, gc, настройка параметров памяти.

Также после этого сообщения: http://git.kernel.org/cgit/git/git.git/tree/Documentation/howto/recover-corrupted-blob-object.txt?id=HEAD

Но в итоге было так же просто, как найти поврежденный объект (21f3981dd35fccd28febabd96f27241eea856c50 в этом случае) в голом репозитории и заменить его на не поврежденную версию (которую можно найти в папке .git любого из локальных репозитории, которые вытащили/клонировали из открытого хранилища.)

5
ответ дан Shiva 09 янв. '14 в 16:12
источник поделиться

Это исправляет проблему для меня, и надежда помогает кому-то другому.:) https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header

1
ответ дан Julian 20 нояб. '13 в 17:48
источник поделиться

Для меня это было потому, что мой удаленный сервер, на котором размещался репозиторий git, имел поврежденный объект/файл. Когда я попытался переупаковать, у него не хватило памяти. Я обновил свою память экземпляра, а затем снова ssh-ed и запустил

git gc

Вот ссылка на документацию:

https://git-scm.com/book/uz/v2/Git-Internals-Packfiles

0
ответ дан zeros-and-ones 12 нояб. '16 в 10:03
источник поделиться

в клиенте, попробуйте сделать это следующим образом:

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m" 
git config --global pack.threads "1"
git config --global pack.window "0"

или на сервере git, попробуйте следующее: изменить: /home/git/repositories/***.git/config, добавить ниже:

[pack]
         window = 0 
0
ответ дан litian.zhuang 19 июня '17 в 9:50
источник поделиться

Другие вопросы по меткам