Исправление фатальной ошибки Git Clone «Early EOFs»
“мерзкий клон” Команда, как следует из ее названия, позволяет дублировать весь репозиторий с удаленного на локальный или наоборот. Хотя это довольно простая и понятная команда git, иногда могут возникать проблемы.
Ранее на этой неделе я столкнулся с ошибкой при выполнении мерзкий клон, и ошибка выглядит следующим образом:
ошибка: пакеты-объекты умерли от сигнала 9,20 МБ | Ошибка 79,00 КиБ / с: git upload-pack: объекты git-pack умерли с ошибкой. fatal: git upload-pack: прерывание из-за возможного повреждения хранилища на удаленной стороне. remote: прерывание из-за возможного повреждения хранилища на удаленной стороне. фатальные: ранние EOFs: 1% (66/3818), 6,04 MiB | 53,00 КиБ / с
После некоторых исследований и отладки, вот две основные причины фатальной ошибки.
1. Медленное интернет соединение
Причина ошибки
Хранилище огромно, а интернет просто слишком медленный.
Это произошло из моего личного опыта - я пытался клонировать репозиторий объемом около 1,5 ГБ. Постоянно происходил сбой при различной скорости загрузки%, иногда после 20 МБ, иногда после 60 МБ, 200 МБ и т. Д..
Решение
Помогает переход на более быстрое и стабильное интернет-соединение. Благодаря более быстрому соединению я смог приблизиться к 1,5 Гб. В какой-то момент я могу клонировать без ошибок.
2. Огромный репозиторий
Причина ошибки
Репозиторий, который вы пытаетесь клонировать, имеет большой размер с точки зрения размера файла. При попытке клонировать его, удаленному серверу просто не хватает памяти, чтобы справиться с выполнением.
Решение
Поворот сжатия. Git клон частично. Когда это успешно, клонируйте остальных.
-
Во-первых, отключите сжатие Git.
git config --global core.compression 0
-
Затем сделайте частичный клон хранилища с
--глубина 1
параметр. замещать[email protected]/path/to/git_repo/
с фактическим путем к хранилищу.мерзкий клон¢Глубина 1 ssh: //[email protected]/path/to/git_repo/
-
Затем извлеките оставшуюся часть хранилища..
git fetch --unshallow
-
Наконец, закончите это с регулярным напряжением.
git fetch --unshallow
Эти методы решили мою проблему. Надеюсь, поможет!