Глобальный прокси Git не нужен лишь потому, что одному проекту требуется другое соединение. Существующая рабочая копия имеет свою локальную конфигурацию, поэтому изменение можно оставить в этом репозитории.

Примеры используют текущие команды git config set/get/unset. Каталог проекта, удалённый URL и документационный IP — заполнители. Для теста публичного репозитория, где разрешены публичные прокси, выберите кандидата из списка HTTP-прокси.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

URL прокси включает транспортную схему. Удалённый репозиторий HTTPS может использовать обычный HTTP-прокси с CONNECT; схема HTTPS удалённого URL не требует менять URL прокси на HTTPS.

Проверьте, что Git действительно выбрал

При неожиданном результате проверьте значение, выбранное для фактического удалённого URL:

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

В запросе используйте настоящий удалённый HTTPS-репозиторий. Git может иметь системные, пользовательские, репозиторные, командные и URL-специфичные настройки. Просмотр только глобального http.proxy может пропустить более конкретное правило. Вывод происхождения помогает найти файл или источник командной строки, определивший результат.

Локальная настройка относится к HTTP-доступу из этого репозитория, а не только к определённой ветке. Репозиторий с несколькими удалёнными HTTP-адресами может использовать её и для других, кроме первого проверенного. Для более узкого соответствия есть URL-специфичные HTTP-настройки.

Пока рабочей копии нет

При первоначальном клонировании решите, должно ли переопределение сохраниться; чтобы ограничить его этим вызовом Git, используйте:

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

Переопределение командной строки само не становится постоянной записью конфигурации в новой рабочей копии. Задайте локальное значение позже, если последующие fetch должны использовать этот маршрут.

Удалённый репозиторий SSH — другой случай

Удалённый адрес, начинающийся с git@host: или ssh://, использует SSH. Настройка HTTP-прокси Git не превращает его в HTTP-передачу. Проверьте транспорт удалённого адреса перед заменой рабочего IP прокси только потому, что операция SSH всё ещё не удаётся.

Когда локальное переопределение больше не нужно, удалите только этот ключ:

git -C project config unset --local http.proxy

Удаление снова даёт действовать применимой конфигурации других источников. Это не команда удаления всех настроек прокси на машине.

Похожие статьи