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?
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 ""
Pour contourner le proxy avec certitude, généralement une adresse locale, il vous suffit de:
export no_proxy=URLToIgnore
Où 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
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
Dansgit_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 dansmatches()
dansconfig.c
.
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.
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.