2011-04-03 25 views
31

Estoy usando msysgit detrás de un proxy. Como dije en la pregunta Getting git to work with a proxy serverCómo usar git detrás de un proxy

He configurado la variable del sistema http_proxy en un valor. Más tarde me llamo

git config --global http.proxy $http_proxy 

Sin embargo, si llamo a algo como:

git clone git://git.savannah.gnu.org/gnuprologjava.git 

Se da el siguiente error:

git.savannah.gnu.org[0; 140.186.70.72]: errno=No error 
fatal: unable to connect a socket (No error) 
+0

esto sólo funciona en mi entorno proxy corporativo, que el acceso la IP externa con el puerto 22 está bloqueada: http://alpengeist-de.blogspot.com.au/2012/03/github-with-cygwin-git-behind-corporate.html – BMW

Respuesta

23

Si estás detrás de un proxy HTTP, que debe ser usando http git urls. La página UsingGit en Savannah.gnu.org le dice la sintaxis correcta para esto. Para que la cesión temporal:

git clone http://git.savannah.gnu.org/r/gnuprologjava.git 
+4

Lamentablemente, algunos scripts de compilación (por ejemplo, para Mono) tienen git: // urls horneados. :( – nik

+1

o comienzan con https: // – carlos

+0

Nota: Por HTTP (s) no es posible autorizar con la clave SSH. :-( – Martin

7

Cuando estás en Linux, consulte this page.

En Windows lo he resuelto de esta manera;

Instale Cygwin, y seleccione el paquete socat. Crear un script gitproxy.cmd y guardarlo en el camino (utilicé C: \ msysgit \ cmd \ gitproxy.cmd):

@echo off 
C:\cygwin\bin\socat.exe - PROXY:192.168.100.1:\%1:\%2,proxyport=3128 

(sustituir 192.168.100.1 y 3128 con su propio proxy de IP/puerto)

ejecuta la siguiente línea para configurar el proxy:

git config --global core.gitproxy gitproxy.cmd 

Tenga en cuenta que el servidor proxy debe aceptar el comando CONNECT para el puerto Git (9418). He añadido las siguientes líneas a la configuración de calamar para hacer este trabajo:

acl SSL_ports port 9418   # git 
acl Safe_ports port 9418  # git 

(es decir, configurar el puerto 9418 del mismo modo que el puerto 443 en el servidor proxy)

+0

FYI, si estás clonando desde un servidor git que tiene una dirección http git, pude usar cygwin's git simplemente configurando la variable de shell 'http_proxy' en mi servidor proxy y luego haciendo' git clone http: // github.com/blah/blah.git'.Puedes probar que 'http_proxy' funciona a través de tu proxy instalando' wget' a través de setup.exe de cygwin y haciendo 'wget www.google.com'. Si 'http_proxy' está configurado correctamente, ese comando descargará un archivo. –

3

Como este fue contestada por muchos, pero este es solo para Winodws USUARIO que está detrás del proxy con autenticación.

Reinstalación (primer error, no eliminar).

Goto: 
1. msysgit\installer-tmp\etc\gitconfig 
    Under [http] 
     proxy = http://user:[email protected]:port 
2. msysgit\installer-tmp\setup-msysgit.sh 
     export HTTP_PROXY="http://USER:[email protected]:8080" 

si tiene alguna Char especial en usuario/uso url_encode

Opciones 2: variable de entorno Conjunto

HTTP_PORXY = http://proxy.com:8080

Cuestiones relacionadas