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
задан 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
ответ дан 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
ответ дан 01 февр. '15 в 17:44
источник

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

11
ответ дан 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
ответ дан 09 янв. '14 в 16:12
источник

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

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

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

git gc

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

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

0
ответ дан 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
ответ дан 19 июня '17 в 9:50
источник

Другие вопросы по меткам или Задайте вопрос