320 votos

¿Cómo me tire de un repositorio de Git a través de un proxy HTTP,?

Nota: mientras que el caso de uso se describe es sobre el uso de submódulos dentro de un proyecto, el mismo se aplica a una normal git clone de un repositorio a través de HTTP.

Tengo un proyecto en Git control. Me gustaría añadir un submódulo:

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

Pero me da

...
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'

Tengo mi configurar la variable de entorno HTTP_PROXY:

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

Incluso tengo un global de configuración de Git para el http proxy:

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

Nadie ha llegado HTTP capturas para trabajar consistentemente a través de un proxy? Lo realmente extraño es que un par de proyectos en GitHub trabajo fino (awesome_nested_set por ejemplo), pero otros consistentemente fallan (rieles por ejemplo).

339voto

Derek Mahar Puntos 7125

También puede configurar el proxy HTTP que Git utiliza en la configuración global de la propiedad http.proxy:

C:\> git config --global http.proxy %HTTP_PROXY%

102voto

Max MacLeod Puntos 8425

Hay algunos grandes respuestas sobre esto ya. Sin embargo, pensé que sería un chip en algunos servidores proxy requieren para autenticar con un Id de usuario y contraseña. A veces esto puede ser en un dominio.

Así, por ejemplo, si su servidor proxy configuración es la siguiente:

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

A continuación, añadir a su .gitconfig archivo con el siguiente comando:

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

No te preocupes https. Mientras el servidor proxy especificado soporta http, https y, a continuación, una entrada en el archivo de configuración será suficiente.

A continuación, puede comprobar que el comando se agregó la entrada a su .gitconfig archivo correctamente haciendo cat .gitconfig:

Al final del archivo, verá una entrada como la siguiente:

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

Eso es todo!

96voto

James A. Rosen Puntos 25774

Lo que finalmente se trabajó fue la creación de la $http_proxy variable de entorno. No me habia fijado $HTTP_PROXY correctamente, pero git al parecer le gusta el menor caso, la versión mejor.

39voto

sethbc Puntos 907

Parece que estás usando un mingw compilación de Git en windows (o posiblemente otro no he oído hablar). Hay formas para la depuración de esto: yo creo que todos los proxy http de trabajo para git es hecho por la curvatura. Establecer esta variable de entorno antes de ejecutar git:

GIT_CURL_VERBOSE=1

Esto debería al menos dar una idea de lo que está pasando detrás de las escenas.

15voto

Benjamin Wootton Puntos 1210

Esta es una vieja pregunta, pero si estás en Windows, considere la posibilidad de establecer HTTPS_PROXY así que si usted va a recuperar a través de una dirección URL https. Funcionó para mí!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X