Remarque: alors que le cas d'utilisation décrit concerne l'utilisation de sous-modules dans un projet, il en va de même pour une normale 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 configuré:
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
J'ai même un paramètre Git global pour le proxy http:
c:\project> git config --get http.proxy
http://proxy.mycompany:80
Quelqu'un a-t-il obtenu des récupérations HTTP pour fonctionner 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 régulièrement ( rails par exemple).
git
proxy
git-submodules
James A. Rosen
la source
la source
--global
àgit config
.Réponses:
Vous pouvez également définir le proxy HTTP que Git utilise dans la propriété de configuration globale
http.proxy
:Pour vous authentifier avec le proxy:
( Nous remercions @EugeneKulabuhov et @JaimeReynoso pour le format d'authentification.)
la source
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080
syntaxe pour fournir le nom d'utilisateur / mot de passeIl y a déjà d'excellentes réponses à ce sujet. Cependant, je pensais que j'allais intervenir car certains serveurs proxy nécessitent que vous vous authentifiiez avec un ID utilisateur 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:
Ajoutez ensuite à votre
.gitconfig
fichier à l'aide de la commande suivante:Ne t'inquiète pas
https
. Tant que le serveur proxy spécifié prend en charge http et https, une seule entrée dans le fichier de configuration suffit.Vous pouvez ensuite vérifier que la commande a
.gitconfig
correctement ajouté l'entrée à votre fichier en procédant comme suitcat .gitconfig
:À la fin du fichier, vous verrez une entrée comme suit:
C'est ça!
la source
%40
et cela fonctionnera.Ce qui a finalement fonctionné était de définir la
http_proxy
variable d'environnement. J'avais régléHTTP_PROXY
correctement, mais git aime mieux la version minuscule.la source
http.proxy
dans la configuration globale de Git fonctionne-t-il? Dans votre question, vous définissezhttp.proxy
dans la configuration du référentiel local.https_proxy
https.proxy
semblait fonctionner pour moi car j'utilisais https sur githubhttps_proxy
cela signifie que vous n'utilisiezhttps
pas lahttp
question à propos de laquelle.Il semble que vous utilisez une compilation mingw de Git sur Windows (ou peut-être une autre dont je n'ai pas entendu parler). Il existe des moyens de déboguer ceci: je crois que tout le travail du proxy http pour git est fait par curl. Définissez cette variable d'environnement avant d'exécuter git:
Cela devrait au moins vous donner une idée de ce qui se passe dans les coulisses.
la source
Si vous souhaitez simplement utiliser un proxy sur un référentiel spécifié, vous n'en avez pas besoin sur d'autres référentiels. La manière préférable est l'
-c, --config <key=value>
option lorsque vous êtesgit clone
un référentiel. par exemplela source
--config
plusieurs fois, par exemple lorsque vous souhaitez également définirhttps.proxy
.Lorsque votre équipe réseau effectue une inspection ssl en réécrivant les certificats, puis en utilisant une URL http au lieu d'une URL https, combinée avec la définition de cette var, cela a fonctionné pour moi.
la source
Vous pouvez également modifier le fichier .gitconfig situé dans le répertoire% userprofile% sur le système Windows ( bloc-notes% userprofile% .gitconfig ) ou dans le répertoire ~ sur le système Linux ( vi ~ / .gitconfig ) et ajouter une section http comme ci-dessous.
Contenu du fichier .gitconfig:
la source
Pour moi, git: // ne fonctionne tout simplement pas via le proxy, bien que https: // le fasse. Cela a causé quelques maux de tête parce que j'exécutais des scripts qui utilisaient tous git: // donc je ne pouvais pas tout simplement les changer tous. Cependant j'ai trouvé ce GEM
la source
Il s'agit d'une ancienne question, mais si vous êtes sous Windows, pensez à définir HTTPS_PROXY également si vous effectuez une récupération via une URL https. A travaillé pour moi!
la source
https_proxy
la variable d'environnement seule (aucun ensemble d'options git global ou repo proxy) dans mon cas (msysgit sous Windows XP).Je ne trouve ni
http.proxy
neGIT_PROXY_COMMAND
travaille pour mon proxy http authentifié. Le proxy n'est déclenché d'aucune façon. Mais je trouve un moyen de contourner cela.Créez un fichier d'authentification. Le format pour
authfile
est:,user_name:password
etuser_name
,password
est votre nom d'utilisateur et votre mot de passe pour accéder à votre proxy. Pour créer le fichier une telle commande simplement courir comme ceci:echo "username:password" > ~/.ssh/authfile
.Modifiez
~/.ssh/config
et assurez-vous que son autorisation est644
:chmod 644 ~/.ssh/config
Prenez github.com comme exemple, ajoutez les lignes suivantes à
~/.ssh/config
:Désormais, chaque fois que vous faites quoi que ce soit
[email protected]
, il utilise automatiquement le proxy. Vous pouvez facilement faire la même chose avec Bitbucket également.Ce n'est pas aussi élégant que les autres approches, mais cela fonctionne comme un charme.
la source
Sous Windows, si vous ne souhaitez pas mettre votre mot de passe dans .gitconfig en 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:
Pointez git vers votre nouveau proxy localhost:
la source
Pour moi, cela a fonctionné:
Créez un fichier dans votre $ BIN_PATH / gitproxy avec:
N'oubliez pas de lui donner des autorisations d'exécution
Exécutez les commandes suivantes pour configurer l'environnement:
la source
git://
les URL de protocole, pour les serveurs git (rares) qui ne prennent pas en charge https. Fonctionne également sur Windows, avec un fichier de commandes approprié et socat pour Windows.Configurer le proxy pour git
commander
exemple
la source
Définissez Git credential.helper sur wincred.
Assurez-vous qu'il n'y a qu'un seul identifiant.
S'il y en a plus d'un et qu'il n'est pas réglé sur wincred, supprimez-le.
Définissez maintenant le proxy sans mot de passe.
Vérifiez que tous les paramètres que vous avez ajoutés sont corrects ....
Maintenant vous êtes prêt à partir!
la source
J'ai eu le même problème, avec un correctif légèrement différent: RECONSTRUIRE GIT AVEC SUPPORT HTTP
Le
git:
protocole n'a pas fonctionné via mon pare-feu d'entreprise.Par exemple, cela a expiré:
curl github.com
fonctionne très bien, donc je sais que mahttp_proxy
variable d'environnement est correcte.J'ai essayé d'utiliser
http
, comme ci-dessous, mais j'ai obtenu une erreur immédiate.J'ai essayé de recompiler git comme ceci:
mais toujours eu l'erreur fatale.
Enfin, après plusieurs heures frustrantes, j'ai lu le fichier de configuration et j'ai vu ceci:
Je me suis alors rappelé que je ne m'étais pas conformé
curl
à la source, et je suis donc allé chercher les fichiers d'en-tête. Effectivement, ils n'étaient pas installés. C'était ça le problème. Make ne s'est pas plaint des fichiers d'en-tête manquants. Je ne savais donc pas que l'--with-curl
option ne faisait rien (c'est en fait la valeur par défaut dans ma version degit
).J'ai fait ce qui suit pour le réparer:
Ajout des en-têtes nécessaires pour make:
Supprimé
git
de/usr/local
(car je veux que la nouvelle installation y vive).J'ai simplement retiré
git*
de/usr/local/share
et/usr/local/libexec
Recherché les comprennent dirs contenant les
curl
etexpat
fichiers en- tête, puis (parce que j'avais lu parconfigure
) ajouté ce à l'environnement comme ceci:Ran
configure
avec les options suivantes, qui, encore une fois, ont été décrites dans leconfigure
fichier lui-même, et étaient également les valeurs par défaut, mais que diable:Et
http
fonctionne maintenant avecgit
mon pare-feu d'entreprise:la source
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 curl.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
la source
git config --global http.sslcainfo NEW_CERTS_BUNDLE.crt
comme décrit dans: stackoverflow.com/a/8248484/98528 l'a fait pour moi! Merci!Cela a fonctionné pour moi.
la source
vous pouvez utiliser:
la source
Utiliser des chaînes proxy
mise à jour: proxychains est interrompu, utilisez plutôt proxychains-ng .
la source
Pour les fenêtres
Goto -> C: / Users / nom_utilisateur / gitconfig
Mettre à jour le fichier gitconfig avec les détails ci-dessous
[http]
[https]
[http]
Comment vérifier votre proxy et votre numéro de port?
Internet Explorer -> Paramètres -> Options Internet -> Connexions -> Paramètres LAN
la source
La méthode ci-dessous fonctionne pour moi:
la source
A noter: la plupart des exemples sur le net montrent des exemples comme
Il semble donc que - si votre proxy a besoin d'une authentification - vous devez laisser votre mot de passe d'entreprise dans la configuration git. Ce qui n'est pas vraiment cool.
Mais, si vous configurez simplement l'utilisateur sans mot de passe:
Git semble (au moins sur ma machine Windows sans aide d'identification) reconnaître cela et demande le mot de passe proxy sur l'accès repo.
la source
Ce n'est pas un problème avec votre proxy. C'est un problème avec github (ou git). Cela échoue aussi pour moi sur git-1.6.0.1 sur linux. Un bug est déjà signalé (par vous pas moins).
Assurez-vous de supprimer vos pâtés, ils sont déjà sur Google. Edit: J'ai dû rêver, je suppose que vous ne pouvez pas les supprimer. Utilisez Gist à la place?
la source
$ http_proxy est pour http://github.com .... $ https_proxy est pour https://github.com ...
la source
Les réponses ci-dessus ont fonctionné pour moi lorsque mon proxy n'a pas besoin d'authentification. Si vous utilisez un proxy qui vous oblige à vous authentifier, vous pouvez essayer CCProxy. J'ai un petit tutoriel sur la façon de le configurer ici,
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
J'ai pu pousser, tirer, créer de nouveaux dépôts. Tout fonctionnait très bien. Assurez-vous de faire une désinstallation propre et de réinstaller la nouvelle version si vous rencontrez des problèmes avec Git comme je l'ai fait.
la source
comme @ user2188765 l'a déjà souligné, essayez de remplacer le
git://
protocole du référentiel parhttp[s]://
. Voir aussi cette réponsela source
J'ai contourné le proxy en utilisant https ... certains proxys ne vérifient même pas https.
la source
Comme cela a été répondu par beaucoup, mais c'est juste pour Winodws USER qui est derrière le proxy avec authentification.
Réinstallation (premier échec, ne pas supprimer).
si vous avez un caractère spécial dans user / pass, utilisez url_encode
la source