Comment désactiver temporairement le proxy http git

J'utilise git derrière un pare-feu d'entreprise, et je clone avec succès des projets externes en utilisant la config http.proxy –global.

Mon problème se pose lorsque je veux cloner http sur l'intranet. Je soupçonne que la configuration proxy interfère avec la request intranet.

Je sais que je pourrais réinitialiser la configuration avant d'utiliser l'intranet, mais ce n'est pas très convivial.

J'ai également vu cette réponse , mais elle ne semble s'appliquer qu'à un référentiel existant.

Est-il possible de désactiver l'utilisation du proxy uniquement pour une invocation de command? Dans ce cas, le clone initial?

Solutions Collecting From Web of "Comment désactiver temporairement le proxy http git"

Je fixe toujours:

no_proxy=.mycompany 

( export si je suis sur Unix, ou un simple set sur Windows)

Il suffit de contourner le proxy pour toute URL intranet se terminant par " .mycompany ".

Voir pour un exemple:

  • " Impossible de mettre à jour / installer en utilisant un composeur derrière un pare-feu d'entreprise "
  • " Utiliser uniquement un proxy pour certaines URL / domaines git? "
  • " Impossible de git-svn fetch derrière un proxy "

Je l'utilise dans mon propre projet: .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 

Ce que j'aime faire, c'est définir deux alias Git:

~ / .gitconfig

 [alias] noproxy = config --global --remove-section http proxy = config --global http.proxy http://127.0.0.1:9666 

Notez que je n'ai pas utilisé config --global --unset http.proxy pour réinitialiser le proxy car cela laisse derrière le titre [http] , donc après avoir activé et désactivé le proxy à plusieurs resockets, votre .gitconfig sera pollué avec un tas de vide [http] -têtes de section. Pas grave, mais c'est juste énervant.


Dans certains cas, comme derrière les pare-feu d'entreprise, vous devez configurer ~/.ssh/config place. La configuration devient légèrement plus compliquée:

~ / .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.proxy

 Host * ProxyCommand connect -H 127.0.0.1:9666 %h %p Host github.com-username HostName github.com User git IdentityFile ~/.ssh/id_rsa 

Vous pouvez même combiner les deux methods en changeant les alias en:

 [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' 

Maintenant, je peux simplement taper git noproxy pour désactiver le proxy et git proxy pour l'activer. Vous pouvez même basculer entre plusieurs proxy en créant plus d'alias.