Как временно отключить git HTTP прокси
Я использую git за корпоративным брандмауэром, и я успешно клонирую внешние проекты с помощью http.прокси -- глобальная конфигурация.
моя проблема возникает, когда я хочу клонировать через http в интрасети. Я подозреваю, что конфигурация прокси-сервера вмешивается в запрос интрасети.
Я знаю, что могу сбросить конфиг перед использованием интрасети, но это не очень удобно для пользователя.
Я тоже видел этот ответ, но, похоже, это применимо только в существующий репозиторий.
есть ли способ деактивировать использование прокси только для одного вызова команды? В этом случае, первоначальный клон?
3 ответов
Я всегда ставил:
no_proxy=.mycompany
(export
Если я на Unix, или простой set
в Windows)
достаточно обойти прокси для всех url интрасети, заканчивающихся на".mycompany
".
см. пример:
- "не удается обновить / установить с помощью composer за корпоративным брандмауэром"
- "использовать прокси только для определенных git urls / доменов?"
- "не может
git-svn fetch
за прокси"
Я использую его в своем проекте: .proxy.example
:
export http_proxy=http://username:userpassword@server.company:port
export https_proxy=http://username:userpassword@server.company:port
export no_proxy=.company localhost
что мне нравится делать, это установить два псевдонима Git:
~/.gitconfig хранит настройки
[alias]
noproxy = config --global --remove-section http
proxy = config --global http.proxy http://127.0.0.1:9666
обратите внимание, что я не использую config --global --unset http.proxy
для сброса прокси-сервера, потому что это оставляет позади [http]
заголовок раздела, поэтому после многократного включения и отключения прокси ваш .gitconfig
будет загрязнен с кучей пустых [http]
заголовки разделов. Ничего страшного, но это просто раздражает.
в некоторых случаях, как за корпоративными брандмауэрами, вам чтобы настроить . Настройка становится немного сложнее:
~/.gitconfig хранит настройки
[alias]
noproxy = !sh -c 'cp ~/.ssh/config.noproxy ~/.ssh/config'
proxy = !sh -c 'cp ~/.ssh/config.proxy ~/.ssh/config'
~/.ssh / config.noproxy
Host github.com-username
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
~/.ssh / config.прокси
Host *
ProxyCommand connect -H 127.0.0.1:9666 %h %p
Host github.com-username
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
вы даже можете объединить два метода, изменив псевдонимы на это:
[alias]
noproxy = !sh -c 'git config --global --remove-section http 2> /dev/null && cp ~/.ssh/config.noproxy ~/.ssh/config'
proxy = !sh -c 'git config --global http.proxy http://127.0.0.1:9666 && cp ~/.ssh/config.proxy ~/.ssh/config'
теперь я могу просто типа git noproxy
отключить прокси и git proxy
, чтобы включить его. Вы даже можете переключайтесь между несколькими прокси, создавая больше псевдонимов.
в моем случае я смог отключить запросы клонирования git, проходящие через прокси-сервер в моей корпоративной настройке, выполнив
git config --global --add remote.origin.proxy ""
согласно документации git, это отключает все запросы к этому удаленному репозиторию с именем origin.