Чаще всего такое случается: у меня медленное интернет-соединение, и мне приходится клонировать прилично огромный репозиторий git. Наиболее частая проблема заключается в том, что соединение закрывается и весь клон отменяется.
Cloning into 'large-repository'...
remote: Counting objects: 20248, done.
remote: Compressing objects: 100% (10204/10204), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
После множества проб и ошибок, а также после множества случаев «неожиданное отключение удаленного конца» у меня есть способ, который работает для меня. Идея состоит в том, чтобы сначала сделать неглубокий клон, а затем обновить репозиторий его историей.
$ git clone http://github.com/large-repository --depth 1
$ cd large-repository
$ git fetch --unshallow
--depth 1
и--unshallow
. Это также работает для получения существующего репо при медленном соединении:git fetch --depth 1
thengit fetch --unshallow
.git fetch --unshallow
Команда справляется с потерей соединения более щадящим способом, чем командаgit clone
? И вот в чем здесь разница?git fetch --unshallow
командаRPC failed;
git fetch --unshallow
. Думаю, мое репо слишком велико даже для такого подхода. Работал только SSH.Через несколько дней, сегодня я решил эту проблему. Создайте ключ ssh, следуйте этой статье:
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
Объявить это
Затем клонируйте командой:
И никаких ошибок не происходит.
Вышеупомянутая проблема
из-за ошибки при клонировании по протоколу HTTP (
curl
команда).И вы должны увеличить размер буфера:
источник
http.postBuffer
не работал.http.postBuffer
сработала у меня - спасибо!Когда я пытался клонировать с пульта, неоднократно возникала одна и та же проблема:
Наконец, это сработало для меня:
источник
нужно отключить сжатие:
тогда вам нужно использовать мелкий клон
тогда самый важный шаг - это cd в ваш клонированный проект
теперь деактивируйте клон, шаг за шагом
например.
затем,
затем,
вы можете выбрать, сколько шагов вы хотите, заменив это N,
и, наконец, загрузите все оставшиеся версии, используя,
проголосуйте за, если это вам поможет :)
источник
Простое решение: вместо клонирования через https клонируйте его через ssh.
Например:
источник
Проблемы с сетевым подключением.
Может быть, из-за постоянного тайм-аута соединения.
Лучший способ - перейти в другую сеть.
источник
Эти шаги сработали для меня: использование
git://
вместоhttps://
источник
Как упоминалось выше, прежде всего запустите команду git из bash, добавив вначале расширенные директивы журнала:
GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ...
Например,
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
это покажет вам подробную информацию об ошибке.источник
У меня эта проблема возникла из-за конфигурации прокси. Я добавил ip git server в исключение прокси. Сервер git был локальным, но переменная среды no_proxy была установлена неправильно.
Я использовал эту команду, чтобы определить проблему:
Взамен была «авторизация прокси», так как сервер git не должен проходить через прокси. Но настоящей проблемой был размер файлов, определяемый правилами прокси.
источник
Для меня проблема заключалась в том, что соединение закрывается до завершения всего клона. Я использовал Ethernet вместо Wi-Fi. Тогда это решает для меня
источник
Пробовал все ответы здесь. Я пытался добавить кокосы на свою машину.
У меня не было SSH-ключа, спасибо @Do Nhu Vy
https://stackoverflow.com/a/38703069/2481602
И наконец использовал
чтобы окончательно исправить найденную проблему https://stackoverflow.com/a/50959034/2481602
источник
Эта ошибка чаще возникает при медленном или проблемном подключении к Интернету. Я подключил с хорошей скоростью интернета, тогда он работает отлично.
источник
Эта проблема возникает, когда у вас проблема с прокси-сервером или медленная сеть. Вы можете использовать глубинное решение или
Если это дает ошибку curl 56 Recv failure, загрузите файл через zip или укажите имя ветки вместо --all
источник
Изменение протокола git clone, чтобы попробовать.
например, эта ошибка произошла, когда "git clone https: // xxxxxxxxxxxxxxx "
вы можете попробовать с "git clone git: // xxxxxxxxxxxxxx", тогда может быть хорошо.
источник
Эти шаги работают для меня:
Надеюсь, это сработает и для вас.
источник
попробуй это
https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
это работа для меня .. capture.png
источник