Git (HTTPS и SSH)
клонирование по HTTPS использует http.proxy, по SSH — ProxyCommand, при необходимости через порт 443.
HTTPS
# глобально
git config --global http.proxy http://127.0.0.1:7898
# только для GitHub (рекомендуется)
git config --global http.https://github.com.proxy http://127.0.0.1:7898
# сбросить
git config --global --unset http.proxy
git config --global --unset http.https://github.com.proxyЕсли задана переменная окружения https_proxy, Git тоже её использует.
SSH (git@github.com)
SSH не читает переменные HTTP-прокси, поэтому настройте ProxyCommand в ~/.ssh/config.
macOS / Linux:
Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand nc -X 5 -x 127.0.0.1:7898 %h %pWindows (в Git for Windows есть connect):
Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand connect -S 127.0.0.1:7898 %h %pВнимание
ssh.github.com:443 — официальный порт GitHub для SSH поверх HTTPS, подходит для сетей с ограничением порта 22.
В Linux nc должен быть версией OpenBSD (пакет netcat-openbsd в Debian/Ubuntu), чтобы поддерживать -X.
Проверка:
ssh -T git@github.comСоветы для больших репозиториев
git clone --depth 1 https://github.com/owner/repo # поверхностное клонирование
git clone --filter=blob:none https://github.com/owner/repo # загрузка содержимого файлов по требованию