Question

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 normal d'un référentiel sur HTTP.

J'ai un projet sous le contrôle de Git. J'aimerais 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 configuré mon HTTP_PROXY:

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 a-t-il réussi à obtenir des résultats HTTP via un proxy? Ce qui est vraiment étrange, c’est que quelques projets sur GitHub fonctionnent correctement ( awesome_nested_set , par exemple), mais d'autres échec constant ( rails , par exemple).

Était-ce utile?

La solution 3

Ce qui a finalement fonctionné a été la définition de la variable d’environnement http_proxy. J'avais réglé HTTP_PROXY correctement, mais git aime apparemment mieux la version minuscule.

Autres conseils

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

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

Pour s'authentifier auprès du proxy:

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

(Le crédit va à @EugeneKulabuhov et @ JaimeReynoso pour le format d'authentification.)

Il existe déjà d'excellentes réponses à ce sujet. Cependant, je pensais pouvoir participer car certains serveurs proxy vous obligent à vous authentifier avec un identifiant et un mot de passe. Parfois, cela peut être sur un domaine.

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

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

Ajoutez ensuite à votre .gitconfig fichier à l'aide de la commande suivante:

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

Ne vous inquiétez pas pour https. Tant que le serveur proxy spécifié prend en charge les protocoles http et https, une seule entrée dans le fichier de configuration suffit.

Vous pouvez ensuite vérifier que la commande a bien ajouté l'entrée à votre fichier cat .gitconfig en exécutant <=>:

.

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

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

C'est ça!

Il semble que vous utilisiez une compilation de Git sous Windows (ou peut-être une autre dont je n’ai pas entendu parler). Il y a plusieurs façons de déboguer ceci: Je pense que tout le travail du proxy http pour git se 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.

Si vous souhaitez uniquement utiliser un proxy sur un référentiel spécifié, n’avez pas besoin d’autres référentiels. La méthode préférable est l'option -c, --config <key=value> 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"

Lorsque votre équipe réseau inspecte SSL en réécrivant les certificats, utilisez une URL http au lieu de https, associée à la définition de cette variable qui a fonctionné pour moi.

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

Vous pourriez aussi modifier le fichier .gitconfig situé dans le répertoire% userprofile% sur le système Windows ( notepad% userprofile% .gitconfig ) ou dans le répertoire ~ sur le système Linux (< em> vi ~ / .gitconfig ) et ajouter une section http comme ci-dessous.

Contenu du fichier .gitconfig:

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

Ceci est une vieille question, mais si vous utilisez Windows, envisagez également de définir HTTPS_PROXY si vous effectuez une récupération via une URL https. Travaillé pour moi!

Pour moi, le git: // ne fonctionne tout simplement pas avec le proxy, contrairement à https: //. Cela causait un peu de maux de tête parce que j'exécutais des scripts qui utilisaient tous git: //, je ne pouvais donc pas les changer facilement. Cependant, j'ai trouvé ce GEM

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

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

  1. Installez tire-bouchon ou toute autre solution de votre choix.
  2. Créez un fichier d'authentification. Le format pour authfile est: user_name:password et user_name, password sont votre nom d'utilisateur et votre mot de passe pour accéder à votre proxy. Pour créer un tel fichier, exécutez simplement la commande suivante: echo "username:password" > ~/.ssh/authfile.

  3. Modifier ~/.ssh/config et assurez-vous que son autorisation est 644: chmod 644 ~/.ssh/config

Prenez github.com à titre d'exemple, ajoutez les lignes suivantes à git@github.com:

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 <=>, il utilisera automatiquement le proxy. Vous pouvez facilement faire la même chose pour Bitbucket .

Ce n’est pas aussi élégant que les autres approches, mais cela fonctionne à merveille.

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 localhost-proxy sans authentification.

Pour le faire fonctionner:

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

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

Pour moi, cela a fonctionné:

sudo apt-get install socat

Créez un fichier dans votre $ BIN_PATH / gitproxy avec:

#!/bin/sh 
_proxy=192.168.192.1 
_proxyport=3128 
exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport

N'oubliez pas de lui donner des autorisations d'exécution

chmod a+x gitproxy

Exécutez les commandes suivantes pour configurer l'environnement:

export PATH=$BIN_PATH:$PATH
git config --global core.gitproxy gitproxy

Juste pour poster ceci car c'est le premier résultat sur Google, cet article de blog que j'ai trouvé résout le problème pour moi en mettant à jour les certificats de boucle.

http://www.simplicidade.org/notes/archives/ 2011/06 / github_ssl_ca_errors.html

Configurer le proxy sur git

commande

git config --global http.proxy http://user:password@domain:port

exemple

git config --global http.proxy http://clairton:123456@proxy.clairtonluz.com.br:8080

Cela a fonctionné pour moi.

git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port

J'ai eu le même problème, avec un correctif légèrement différent: RESTAURATION DE GIT AVEC SUPPORT HTTP

Le protocole git: ne fonctionnait pas avec le pare-feu de mon entreprise.

Par exemple, ce délai a expiré:

git clone git://github.com/miksago/node-websocket-server.git

curl github.com fonctionne très bien, donc je sais que ma variable d’environnement http_proxy est correcte.

J'ai essayé d'utiliser http, comme ci-dessous, mais une erreur s'est produite immédiatement.

git clone http://github.com/miksago/node-websocket-server.git

->>>  fatal: Unable to find remote helper for 'http' <<<-

J'ai essayé de recompiler git comme suit:

./configure  --with-curl --with-expat

mais vous avez toujours l'erreur fatale.

Enfin, après plusieurs heures de frustration, j'ai lu le fichier de configuration, et a vu ceci:

  

# Définissez CURLDIR = / foo / bar si votre en-tête Curl et vos fichiers de bibliothèque sont dans

     

# / foo / bar / include et les répertoires / foo / bar / lib.

Je me suis alors rappelé que je ne m'étais pas conformé curl de la source, et je suis donc allé rechercher les fichiers d'en-tête. Effectivement, ils n'ont pas été installés. C'était le problème. Make ne s'est pas plaint des fichiers d'en-tête manquants. Alors Je ne savais pas que l'option --with-curl ne faisait rien (il s'agit en fait de la valeur par défaut dans ma version de git).

J'ai corrigé ce qui suit:

  1. Ajout des en-têtes nécessaires pour make:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. Supprimé /usr/local de git* (car je souhaite que la nouvelle installation y soit installée).

    J'ai simplement supprimé /usr/local/share de /usr/local/libexec et expat

  3. a recherché les répertoires d'inclusion contenant les fichiers d'en-tête configure et <=>, puis (parce que j'avais lu <=>) ceux-ci ajoutés à l'environnement comme suit:

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. A couru <=> avec les options suivantes, qui, encore une fois, ont été décrites dans le fichier <=> lui-même et qui étaient également les valeurs par défaut, mais bon sang:

    git clone http://github.com/miksago/node-websocket-server.git
    Cloning into 'node-websocket-server'...
    * Couldn't find host github.com in the .netrc file, using defaults
    * About to connect() to proxy proxy.entp.attws.com port 8080
    *   Trying 135.214.40.30... * connected
    ...
    
  5. Et maintenant <=> fonctionne avec <=> à travers le pare-feu de mon entreprise:

    <*>

vous pouvez utiliser:

git config --add http.proxy http://user:password@proxy_host:proxy_port

Définissez Git credential.helper sur wincred.

git config --global credential.helper wincred

Assurez-vous qu'il n'y a qu'un seul identifiant.helper

git config -l

S'il y a plus de 1 et que ce n'est pas le cas, supprimez-le.

git config --system --unset credential.helper

Définissez maintenant le proxy sans mot de passe.

git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80

Vérifiez que tous les paramètres que vous avez ajoutés sont corrects ....

git config --global -l

Maintenant vous êtes prêt à partir!

Ce n'est pas un problème avec votre proxy. C'est un problème avec github (ou git). Cela échoue pour moi sur git-1.6.0.1 sur linux également. Bug est déjà signalé (par vous non moins).

Assurez-vous de supprimer vos pasties, elles sont déjà sur Google. Edit: Vous devez avoir rêvé, je suppose que vous ne pouvez pas les supprimer. Utilisez plutôt Gist ?

$ http_proxy est pour http://github.com .... $ https_proxy est pour https://github.com ...

Pour Windows

Goto - > C: / Users / nom_utilisateur / gitconfig

Mettre à jour le fichier gitconfig avec les détails ci-dessous

[http]

[https]

proxy = https://your_proxy:your_port

[http]

proxy = http://your_proxy:your_port

Comment vérifier votre proxy et votre numéro de port?

Internet Explorer - > Paramètres - & Gt; Options Internet - & Gt; Connexions - & Gt; Paramètres du réseau local

Utilisez chaînes de proxy

proxychains git pull ...

mise à jour: la suppression de proxychains est désactivée. Utilisez proxychains-ng . à la place.

J'ai contourné le proxy en utilisant https ... certains mandataires ne vérifient même pas https.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\git\meantest>git clone http://github.com/linnovate/mean.git
Cloning into 'mean'...
fatal: unable to access 'http://github.com/linnovate/mean.git/': Failed connect
to github.com:80; No error

c:\git\meantest>git clone https://github.com/linnovate/mean.git
Cloning into 'mean'...
remote: Reusing existing pack: 2587, done.
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (24/24), done.
rRemote: Total 2614 (delta 3), reused 4 (delta 0)eceiving objects:  98% (2562/26

Receiving objects: 100% (2614/2614), 1.76 MiB | 305.00 KiB/s, done.
Resolving deltas: 100% (1166/1166), done.
Checking connectivity... done

Les réponses ci-dessus ont fonctionné pour moi lorsque mon proxy n'a pas besoin d'authentification. Si vous utilisez un proxy qui nécessite une authentification, vous pouvez essayer CCProxy. J'ai un petit tutoriel sur la façon de l'installer ici,

http: // blog. praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html

J'ai pu pousser, tirer, créer de nouvelles pensions. Tout a bien fonctionné. Assurez-vous de procéder à une désinstallation propre et à la réinstallation de la nouvelle version si vous rencontrez des problèmes avec Git, comme je l’ai fait.

Comme cela a été répondu par beaucoup, mais ceci est juste pour Winodws UTILISATEUR qui est derrière un proxy avec une autorisation.

Réinstallation (première échec, ne pas supprimer).

Goto ->
**Windows**
1. msysgit\installer-tmp\etc\gitconfig
    Under [http]
        proxy = http://user:pass@url:port

**Linux**
1. msysgit\installer-tmp\setup-msysgit.sh
      export HTTP_PROXY="http://USER:PASS@proxy.abc.com:8080"

si vous avez un caractère spécial dans utilisateur / mot de passe, utilisez code_url

comme @ user2188765 l'a déjà indiqué, essayez de remplacer le protocole git:// du référentiel par http[s]://. Voir aussi cette réponse

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top