Найти в Дзене
Nord Vader

Избавляемся от обрывов соединения с github.com

Привет, дзен! С вами на связи один из разработчиков NordVader! Ранее мы выпускали статьи о разработке на Unreal Engine. Но не всё одним двиглом едино! Мы вот например пользуемся так же системой контроля версий, а именно ГИТом. И иногда он работает мягко говоря не стабильно. Например иногда при вытягивании файлов вылетает ошибка со словами: git error: RPC failed; curl 56 Recv failure: Connection was reset/s error: 4858 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output Кажется я разгадал секрет стабильной работы ГИТ даже с инетом в 2G. На самом деле решение лежало прям под носом, и мне очень обидно что я сразу не понял... Эти обрывы при вытягивании происходят из-за того, что github обрывает HTTP соединение, скорее по всего по внутреннему таймауту, и кажется, "а почему бы не изменить таймаут?" Но нет, это не поможет, и смена стандарта с HTTP 2.0 на HTTP 1.1 тоже не то. Сменить про

Привет, дзен! С вами на связи один из разработчиков NordVader! Ранее мы выпускали статьи о разработке на Unreal Engine. Но не всё одним двиглом едино! Мы вот например пользуемся так же системой контроля версий, а именно ГИТом. И иногда он работает мягко говоря не стабильно.

Например иногда при вытягивании файлов вылетает ошибка со словами:

git error: RPC failed; curl 56 Recv failure: Connection was reset/s error: 4858 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output

Кажется я разгадал секрет стабильной работы ГИТ даже с инетом в 2G. На самом деле решение лежало прям под носом, и мне очень обидно что я сразу не понял...

Эти обрывы при вытягивании происходят из-за того, что github обрывает HTTP соединение, скорее по всего по внутреннему таймауту, и кажется, "а почему бы не изменить таймаут?" Но нет, это не поможет, и смена стандарта с HTTP 2.0 на HTTP 1.1 тоже не то. Сменить провайдера конечно хорошая идея, но не всегда реализуемая, а теперь берём среднее от этих решений, и меняем HTTP на SSH!!!!

Всё, изи-бризи лемон-сквизи. Долгое подключение не имеет таймаута, хоть 10000 лет пусть коннект висит (дай бог здоровья серверам и ПК)

Просто не ленись сгенерировать SSH-ключ для гитхаба, и столько головной боли можно будет избежать, обалдеете!

Как сгенерить ключ на Windows:

1. открываем GIT Bash и вводим команду (почту можно не вводить кста, просто оставь скобки пустыми):

ssh-keygen -t ed25519 -C "your_email@example.com"

Скипаем всякие пароли жмакая Enter, и в итоге всё готово. Там же в консоли
для перехода в папку с ключом пишем:

cd ~/.ssh

Затем открываем содержимое публичной части файла-ключа:

cat id_ed25519.pub

Копируем всё что там вывелось, а будет там что-то типа:

ssh-ed25519 ABAAC***********************************GI+0XN your_email@example.com

Изи, пол дела сделано.

Второй этап

Идём в гитхаб и заходим в настройки, там заходим в раздел SSH ключей (не GPG ключей). Ну и добавляем туда свой публичный ключ. Думаешь это всё?! Нет, ещё пару шагов!

Третий этап

Пересадка локального репозитория на SSH! Идём на сайт репозитория что бы там нажать на кнопку Code (зелёная такая). Там выбираем под-вкладку SSH и копируем что-то такого вида:

git@github.com:username/repo.git

Идём в папку где лежит наш локальный репозиторий, открываем там обычную cmd консолю и вводим туда команду, заменив последний аргумент на то, что мы только что скопировали:

git remote set-url origin git@github.com:username/repo.git

Вот теперь всё!!!

Поздравляю, грациас, порфабор!!!

Надеюсь вам была полезна эта статья, ведь данный метод очень помог нам в стабилизации работы git!