J'essaie d'utiliser Git via un proxy. J'ai essayé de définir les paramètres 'git config --global' de nombreuses manières, mais toujours sans succès lors du clonage de référentiels.
J'ai fait:
git config --global http.proxy http://DOMAIN\\\username:[email protected]:8080
git config --global http.sslverify false
git clone http://github.com/project/project.git
Et j'ai eu:
$ git clone http://github.com/project/project.git folder
Cloning into 'folder'...
error: The requested URL returned error: 407 while accessing http://github.com/project/project.git/info/refs
fatal: HTTP request failed
Alors, comment puis-je déboguer ou activer la connexion à Git pour découvrir pourquoi l'erreur 407 persiste? Y at-il un paramètre dans Git pour montrer verbalement ce qui se passe pour attraper le bon point où l’erreur se produit?
J'ai eu un problème similaire en essayant de git Push
à partir d'un client Git Bash sous Windows.
Je l'ai corrigé simplement en en naviguant sur le site en utilisant Chrome.
Puis je suis revenu à Git Bash et cela a fonctionné immédiatement
Pour plus de clarté, l’URL de mon référentiel GIT ressemble à http://[email protected]/myproject.git
Et je suis allé à http://www.cloudforge.com
Je crois comprendre que cela force le proxy à résoudre ce domaine.
Vous pouvez activer la journalisation des traces pour obtenir plus d'informations sur ce que fait Git. Voici un exemple:
GIT_TRACE=$HOME/trace.log git co master
Vous devez utiliser des chemins absolus si vous souhaitez envoyer la sortie dans un fichier. Sinon, utilisez true ou 1 pour envoyer la sortie en erreur standard; par exemple. GIT_TRACE=1
.
Je pense que vous devriez commencer par l'erreur HTTP: L'erreur HTTP 407 expliquée . Et à partir de là, vous pouvez arriver à la réponse: problème d'erreur de proxy . J'espère que cela pourra aider.
J'ai copié la section proxy http de mon .gitconfig dans https:
[http]
proxy = http://user:pass@ip_or_Host:port
[https]
proxy = http://user:pass@ip_or_Host:port
J'ai mis un mot de passe incorrect dans le proxy http juste pour vérifier, et il a été ignoré, c'est donc la section https qui me manquait.
Étrangement, un autre jour qui n'a pas fonctionné. Je ne sais pas si je deviens fou ou s'il y a un autre pas que j'ai oublié. Dans le cas présent, cette méthode de configuration du proxy fonctionnait (avec un .gitconfig effacé) à partir de la ligne de commande:
HTTPS_PROXY="http://user:pass@ip_or_Host:port/" git clone --progress -v "https://github.com/repo" local_folder
Remarques:
DOMAIN\user
.Cela fonctionne pour les utilisateurs d'un domaine et derrière un proxy avec authentification et inspection HTTPS . Utilisez les éléments suivants où% 5c est utilisé à la place de "\". c'est à dire. DOMAIN% 5cusername @ proxy: port
Ouvrez la configuration GIT dans l'éditeur en entrant la commande ci-dessous:
git config --global -e
Ajoutez/mettez à jour les sections suivantes et enregistrez:
[http]
proxy = http://domain%5cusername:password@proxy:port
sslVerify = false
[https]
proxy = http://domain%5cusername:password@proxy:port
sslVerify = false
Ce qui suit a résolu le problème pour moi
Cette erreur peut se produire si les informations d'identification du proxy sont fournies mais non valides. Dans mon cas, c'était un ancien mot de passe.
Votre proxy peut également être défini comme une variable d’environnement. Vérifiez si l'une des variables env http_proxy ou https_proxy est configurée dans votre environnement et supprimez-la.
Utilisation de l'invite de commande
# Linux
export http://user:pass@ip_or_Host:port
export http://user:pass@ip_or_Host:port
# Windows
set HTTP_PROXY = http://user:pass@ip_or_Host:port
set HTTPS_PROXY = http://user:pass@ip_or_Host:port
changer manuellement
Notez que pour tout Git compris entre 2,8 (février 2016, cinq ans après la question du PO) et Git 2.13 (T2 2017), une configuration de proxy non valide serait silencieusement ignorée (même pas un 407).
Voir commit ae51d91 , commit 5741508 (11 avr. 2017) de Sergey Ryazanov (acteek
) .
Aidé de: Jeff King (peff
) .
(Fusion par Junio C Hamano - gitster
- in commit 6b51cb6 , 24 avril 2017)
http: correction de l'ignorance silencieuse de la mauvaise configuration du proxy
Auparavant, la chaîne d'option
http.proxy
entière était passée àcurl
sans tout prétraitement pour quecurl
puisse se plaindre du proxy non valide configuration.Après le commit 372370f ("
http
: utiliser l'API des informations d'identification pour gérer le proxy Authentication", 2016-01-26), si l'utilisateur a spécifié un HTTP non valide proxy dans la configuration, puis l’option d’analyse silencieuse échoue et NULL sera transmis à curl en tant que proxy.
Cela obligecurl
à détecter la configuration de proxy à partir de l'environnement, ce qui entraîne l'ignorance de l'optionhttp.proxy
.Résolvez ce problème en vérifiant le résultat d'analyse de l'option proxy. Si l'analyse syntaxique Échec puis affiche un message d'erreur et meurt.
Un tel comportement permet au l’utilisateur pour déterminer rapidement la mauvaise configuration du proxy et la corriger.
Si vous utilisez un pare-feu d'entreprise et que vous utilisez Windows git bash, alors:
Ouvrez le fichier global gitconfig, généralement sous C:\Users\USER_NAME.gitconfig et ajoutez les lignes ci-dessous si elles n'existent pas.
[http]
proxy = http://USER_NAME:PASSWORD@PROXY_URL:PROXY_PORT
sslverify = false
[https]
proxy = http://USER_NAME:PASSWORD@PROXY_URL:PROXY_PORT
sslverify = false
Assurez-vous que votre mot de passe ne contient pas le caractère '@' . Si le problème persiste et que vous utilisez l'URL du proxy à la place de l'adresse IP, procédez comme suit: Ouvrez la commande - 'Clé Windows + R', tapez cmd puis appuyez sur entrée exécuter la commande:
nslookup PROXY_URL
Cela vous donnera des adresses IP. Essayez ces adresses IP dans .giconfig au lieu de PROXY_URL.