Question Comment puis-je extraire d'un référentiel Git via un proxy HTTP?


Remarque: bien que le cas d'utilisation décrit concerne l'utilisation de sous-modules dans un projet, il en va de même pour un git clone d'un référentiel via HTTP.

J'ai un projet sous contrôle Git. Je voudrais ajouter un sous-module:

git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu

Mais je reçois

...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'

J'ai mon HTTP_PROXY mis en place:

c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80

J'ai même un paramètre global Git pour le proxy http:

c:\project> git config --get http.proxy
http://proxy.mycompany:80

Quelqu'un at-il eu des recherches HTTP pour travailler de manière cohérente via un proxy? Ce qui est vraiment étrange, c'est que quelques projets sur GitHub fonctionnent bien (awesome_nested_set par exemple), mais d'autres échouent systématiquement (des rails par exemple).


441
2017-09-24 15:58


origine


Réponses:


Vous pouvez également définir le proxy HTTP utilisé par Git dans la propriété de configuration globale http.proxy:

git config --global http.proxy http://proxy.mycompany:80

517
2017-08-04 14:55



Il y a déjà quelques bonnes réponses à cela. Cependant, j'ai pensé que je ferais une puce car certains serveurs proxy exigent que vous vous authentifiez avec un identifiant d'utilisateur et un mot de passe. Parfois, cela peut être sur un domaine.

Ainsi, par exemple, si votre configuration de serveur proxy est la suivante:

Server: myproxyserver
Port: 8080
Username: mydomain\myusername
Password: mypassword

Ensuite, ajoutez à votre .gitconfig fichier en utilisant la commande suivante:

git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080

Ne t'inquiète pas pour https. Tant que le serveur proxy spécifié prend en charge http et https, une seule entrée du fichier de configuration suffit.

Vous pouvez alors vérifier que la commande a ajouté l'entrée à votre .gitconfig fichier avec succès en faisant cat .gitconfig:

A la fin du fichier, vous verrez une entrée comme suit:

[http]
    proxy = http://mydomain\\myusername:mypassword@myproxyserver:8080

C'est tout!


140
2018-02-07 11:33



Ce qui a finalement fonctionné était de mettre le http_proxy variable d'environnement. J'avais mis HTTP_PROXY correctement, mais git aime apparemment la version minuscule mieux.


114
2017-12-29 12:34



On dirait que vous utilisez une compilation Mintw de Git sur Windows (ou peut-être un autre dont je n'ai pas entendu parler). Il y a des façons de déboguer ceci: Je crois que tout le travail de proxy HTTP pour git est fait par curl. Définissez cette variable d'environnement avant d'exécuter git:

GIT_CURL_VERBOSE=1

Cela devrait au moins vous donner une idée de ce qui se passe dans les coulisses.


45
2017-09-24 16:24



Lorsque votre équipe réseau effectue une inspection ssl en réécrivant des certificats, puis en utilisant une URL http au lieu d'une URL, associée à la définition de cette variable, cela a fonctionné pour moi.

git config --global http.proxy http://proxy:8081

24
2018-03-11 15:10



Si vous souhaitez simplement utiliser un proxy sur un référentiel spécifié, inutile sur d'autres référentiels. Le moyen préférable est le -c, --config <key=value> option lorsque vous git clone un référentiel par exemple.

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"

19
2017-12-24 01:45



Tu pourrais aussi éditer le fichier .gitconfig situé dans le répertoire% userprofile% sur le système Windows (Bloc-notes% userprofile% .gitconfig) ou dans ~ répertoire sur le système Linux (vi ~ / .gitconfig) et ajouter une section http comme ci-dessous.

Contenu du fichier .gitconfig:

[http]
        proxy = http://proxy.mycompany:80

18
2017-10-19 08:35



Ceci est une ancienne question, mais si vous êtes sous Windows, envisagez également de définir HTTPS_PROXY si vous récupérez via une URL https. A travaillé pour moi!


15
2018-04-19 11:51



Pour moi, le git: // ne fonctionne pas à travers le proxy bien que le https: // le fasse. Cela a causé un peu de mal de tête parce que j'exécutais des scripts qui utilisaient tous git: // donc je ne pouvais pas simplement les changer tous. Cependant j'ai trouvé ce GEM

git config --global url."https://github.com/".insteadOf git://github.com/

11
2017-09-23 16:30



Sous Windows, si vous ne voulez pas mettre votre mot de passe dans .gitconfig dans le texte brut, vous pouvez utiliser

Il vous authentifie par rapport au proxy normal ou même Windows NTLM et démarre le proxy localhost sans authentification.

Pour le faire fonctionner:

  • Installer Cntml
  • Configurez Cntml en fonction de la documentation pour passer votre authentification proxy
  • Pointez sur votre nouveau proxy localhost:

    [http]
        proxy = http://localhost:3128       # change port as necessary
    

10
2018-02-20 09:46



Je ne trouve ni http.proxy ni GIT_PROXY_COMMAND travail pour mon proxy http authentifié. Le proxy n'est déclenché dans aucun cas. Mais je trouve un moyen de contourner ce problème.

  1. Installer un tire-bouchon, ou d'autres alternatives que vous voulez.
  2. Créez un authfile. Le format pour authfile est: user_name:password, et user_name, password est votre nom d'utilisateur et mot de passe pour accéder à votre proxy. Pour créer un tel fichier, exécutez simplement la commande comme ceci: echo "username:password" > ~/.ssh/authfile.

  3. modifier ~/.ssh/config, et assurez-vous que sa permission est 644: chmod 644 ~/.ssh/config

Prenez github.com comme exemple, ajoutez les lignes suivantes à ~/.ssh/config:

Host    github.com
        HostName        github.com
        ProxyCommand    /usr/local/bin/corkscrew <your.proxy> <proxy port> %h %p <path/to/authfile>
        User            git

Maintenant, chaque fois que vous faites quelque chose avec git@github.com, il utilisera le proxy automatiquement. Vous pouvez facilement faire la même chose Bitbucket ainsi que.

Ce n'est pas si élégant que les autres approches, mais cela fonctionne comme un charme.


10
2018-05-28 14:21