web-dev-qa-db-fra.com

Contournement du proxy Git

Git fonctionne dans un environnement mandaté en définissant le paramètre de configuration http.proxy.

Pour certaines adresses, je dois contourner le proxy. Existe-t-il un paramètre de configuration no-proxy/bypass-proxy?

45
yannisf

Le proxy peut être remplacé sur une base à distance - voir http://git-scm.com/docs/git-config (recherchez "http.proxy" et "remote. <Nom ".proxy"). En supposant que vous ayez la télécommande appelée "Origin", la commande que vous pouvez utiliser pour contourner le proxy pour cette télécommande est la suivante:

git config --add remote.Origin.proxy ""
68
Jan Gutvirth

Pour contourner le proxy avec certitude, généralement une adresse locale, il vous suffit de:

export no_proxy=URLToIgnore

URLToIgnore est l'URL que vous voulez que Git ignore. Vous pouvez également ignorer les URL se terminant par un certain mot.

export no_proxy=.mylocal

Où toutes les URL se terminant par .mylocal sera ignoré. Pour ignorer plusieurs URL:

export no_proxy=.mylocal URLToIgnore

Pour le rendre permanent, ajoutez-le à votre ~/username/.bash_profile fichier. Si vous ne pouvez pas trouver .bash_profile dans le répertoire racine de l’utilisateur, puis créez-le manuellement.

Pour plus de détails: Comment désactiver temporairement le proxy http git

26
Yas T.

Assurez-vous que vous avez un Git 2.1.2+ si vous voulez définir une config à une valeur vide, comme

git config --add remote.Origin.proxy ""

Parce que si vous décidez de restaurer un proxy pour cette télécommande (ici, 'Origin') ... , il segfault avec un Git plus ancien que 2.1.2 (30 septembre, 2014)

Voir commit c846664 ( tanayabh )

make config --add Se comporte correctement pour les valeurs vides et NULL

Actuellement, si nous avons un fichier de configuration comme,

[foo]
        baz
        bar =

et nous essayons quelque chose comme, "git config --add foo.baz roll", Git segfault. De plus, pour "git config --add foo.bar roll", Il écrasera la valeur d'origine au lieu d'être ajouté après la valeur vide existante.

Le problème réside dans l'expression rationnelle utilisée pour simuler --add Dans git_config_set_multivar_in_file(), "^$", Qui, dans l'idéal, ne devrait correspondre à aucune chaîne, mais vaut true pour les chaînes vides.
À la place, utilisez une expression rationnelle du type "a^", Qui ne peut être vraie pour aucune chaîne, qu'elle soit vide ou non.

Pour supprimer la valeur de segment, ajoutez une vérification pour NULL valeurs dans matches() dans config.c .

5
VonC

Accepté réponse requiert que le dépôt Git existe avant la main pour fonctionner et le deuxième meilleur réponse ne fonctionne que pour Linux et Mac. Donc, dans Windows pour le faire fonctionner pour https://git-url.com/project/repo-name.git essayez ce qui suit dans une invite de commande

set no_proxy=git-url.com

puis

git clone git-url.com/repo-name.git

Vous allez maintenant avoir un repo pour appliquer la réponse acceptée.

1
Ganesh Pendyala

En raison du rôle utilisateur Windows/Unix, si vous ne pouvez pas éliminer http_proxy de la ligne de commande, veuillez essayer cette approche -

git config -l --show-Origin

Cela va imprimer les configurations basées présentes sur les fichiers selon la hiérarchie. Maintenant, allez dans un fichier spécifique (fichier de dossier local .git/config) et mettez à jour/supprimez le http_proxy.

J'espère que cela t'aides.

1
Riddhi Sanyal