remote - ¿Cómo extraigo de un repositorio Git a través de un proxy HTTP?
git push origin master (26)
Nota: mientras que el caso de uso descrito trata sobre el uso de submódulos dentro de un proyecto, lo mismo se aplica a un git clone
normal de un repositorio sobre HTTP.
Tengo un proyecto bajo el control de Git. Me gustaría añadir un submódulo:
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Pero me sale
...
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 HTTP_PROXY configurado:
c:/project> echo %HTTP_PROXY%
http://proxy.mycompany:80
Incluso tengo una configuración global de Git para el proxy http:
c:/project> git config --get http.proxy
http://proxy.mycompany:80
¿Alguien ha obtenido búsquedas de HTTP para trabajar de manera consistente a través de un proxy? Lo que es realmente extraño es que algunos proyectos en GitHub funcionan bien ( awesome_nested_set
por ejemplo), pero otros fallan constantemente ( rails por ejemplo).
Configurar proxy para git
mando
git config --global http.proxy http://user:password@domain:port
ejemplo
git config --global http.proxy http://clairton:[email protected]:8080
$ http_proxy es para http://github.com .... $ https_proxy es para https://github.com ...
Como @ user2188765 ya ha señalado, intente reemplazar el protocolo git://
del repositorio con http[s]://
. Ver también esta respuesta.
Como fue respondido por muchos, pero esto es solo para el USUARIO de Winodws que está detrás del proxy con autenticación.
Reinstalación (primer fallo, no eliminar).
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:[email protected]:8080"
Si tiene algún char especial en user / pass use url_encode
Cuando su equipo de red realiza una inspección ssl reescribiendo certificados, luego utiliza una URL http en lugar de una https, combinada con la configuración de esta var funcionó para mí.
git config --global http.proxy http://proxy:8081
En Windows, si no desea poner su contraseña en .gitconfig en el texto plano, puede usar
- Cntml ( http://cntlm.sourceforge.net/ )
Lo autentica contra el proxy NTLM normal o incluso de Windows e inicia el proxy de host local sin autenticación.
Para que se ejecute:
- Instalar cntml
- Configure Cntml de acuerdo con la documentación para pasar su autenticación proxy
Apunte git a su nuevo proxy localhost:
[http] proxy = http://localhost:3128 # change port as necessary
Esta es una pregunta antigua, pero si está en Windows, considere la posibilidad de establecer HTTPS_PROXY también si está recuperando a través de una URL https. ¡Trabajó para mi!
Establecer Git credential.helper a wincred.
git config --global credential.helper wincred
Asegúrate de que solo haya 1 credencial.
git config -l
Si hay más de 1 y no está configurado para ganar, elimínelo.
git config --system --unset credential.helper
Ahora configura el proxy sin contraseña.
git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80
Comprueba que todas las configuraciones que agregaste se vean bien ....
git config --global -l
Ahora te va bien!
Esto me funcionó.
git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port
Las respuestas anteriores funcionaron para mí cuando mi proxy no necesita autenticación. Si está utilizando un proxy que requiere que se autentique, entonces puede probar CCProxy. Tengo un pequeño tutorial sobre cómo configurarlo aquí,
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
Pude empujar, tirar, crear nuevos repositorios. Todo funcionó bien. Asegúrese de hacer una desinstalación limpia y reinstalar la nueva versión si enfrenta problemas con Git como lo hice yo.
Lo que finalmente funcionó fue establecer la variable de entorno http_proxy
. Había configurado HTTP_PROXY
correctamente, pero a git aparentemente le gusta más la versión minúscula.
No encuentro trabajo http.proxy
ni GIT_PROXY_COMMAND
para mi proxy HTTP autenticado. El proxy no se activa de ninguna manera. Pero encuentro una manera de evitar esto.
- Instale el corkscrew , u otras alternativas que desee.
Crear un archivo de autenticación. El formato para el
authfile
deauthfile
es:authfile
user_name:password
yuser_name
,password
es su nombre de usuario y contraseña para acceder a su proxy. Para crear un archivo de este tipo, simplemente ejecute el siguiente comando:echo "username:password" > ~/.ssh/authfile
.Edite
~/.ssh/config
y asegúrese de que su permiso sea644
:chmod 644 ~/.ssh/config
Tome github.com como ejemplo, agregue las siguientes líneas a ~/.ssh/config
:
Host github.com
HostName github.com
ProxyCommand /usr/local/bin/corkscrew <your.proxy> <proxy port> %h %p <path/to/authfile>
User git
Ahora, siempre que haga algo con [email protected]
, usará el proxy automáticamente. También puede hacer lo mismo con Bitbucket fácilmente.
Esto no es tan elegante como otros enfoques, pero funciona como un encanto.
Para mí el git: // simplemente no funciona a través del proxy, aunque el https: // lo hace. Esto causó un poco de dolor de cabeza porque estaba ejecutando scripts que utilizaban git: // por lo que no podía cambiarlos fácilmente. Sin embargo encontré este GEM
git config --global url."https://github.com/".insteadOf git://github.com/
Para mí lo que funcionó fue:
sudo apt-get install socat
Crea un archivo dentro de tu $ BIN_PATH / gitproxy con:
#!/bin/sh
_proxy=192.168.192.1
_proxyport=3128
exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport
No te olvides de darle permisos de ejecución.
chmod a+x gitproxy
Ejecute los siguientes comandos para configurar el entorno:
export PATH=$BIN_PATH:$PATH
git config --global core.gitproxy gitproxy
Para ventanas
Ir a -> C: / Usuarios / nombre_usuario / gitconfig
Actualice el archivo gitconfig con los detalles a continuación
[http]
[https]
proxy = https://your_proxy:your_port
[http]
proxy = http://your_proxy:your_port
¿Cómo comprobar su proxy y número de puerto?
Internet Explorer -> Configuración -> Opciones de Internet -> Conexiones -> Configuración de LAN
Parece que estás usando una compilación mingw de Git en Windows (o posiblemente otra que no conozco). Hay formas de depurar esto: creo que todo el trabajo del proxy http para git se realiza mediante curl. Establezca esta variable de entorno antes de ejecutar git:
GIT_CURL_VERBOSE=1
Esto debería al menos darle una idea de lo que está sucediendo detrás de las escenas.
Recorrí el proxy usando https ... algunos proxies ni siquiera comprueban 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
Si solo desea usar proxy en un repositorio específico, no lo necesite en otros repositorios. La forma preferible es la -c, --config <key=value>
cuando git clone
un repositorio. p.ej
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"
Solo para publicar esto, ya que es el primer resultado en Google, esta entrada de blog que encontré resuelve el problema por mí al actualizar los certificados de rizo.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
También puede editar el archivo .gitconfig ubicado en el directorio% userprofile% en el sistema Windows ( notepad% userprofile% .gitconfig ) o en el directorio ~ en el sistema Linux ( vi ~ / .gitconfig ) y agregar una sección http como se muestra a continuación.
Contenido del archivo .gitconfig:
[http]
proxy = http://proxy.mycompany:80
También puede configurar el proxy HTTP que usa Git en la propiedad de configuración global http.proxy
:
git config --global http.proxy http://proxy.mycompany:80
Tuve el mismo problema, con una solución ligeramente diferente: RECONSTRUCCIÓN DE GIT CON SOPORTE DE HTTP
El protocolo git:
no funcionó a través de mi firewall corporativo.
Por ejemplo, esto expiró:
git clone git://github.com/miksago/node-websocket-server.git
curl github.com
funciona bien, sin embargo, así que sé que mi variable de entorno http_proxy
es correcta.
Intenté usar http
, como abajo, pero obtuve un error inmediato.
git clone http://github.com/miksago/node-websocket-server.git
->>> fatal: Unable to find remote helper for ''http'' <<<-
Traté de recompilar git de esta manera:
./configure --with-curl --with-expat
Pero todavía tiene el error fatal.
Finalmente, después de varias horas frustrantes, leí el archivo de configuración y vi esto:
# Defina CURLDIR = / foo / bar si su encabezado de curl y sus archivos de biblioteca están en
# / foo / bar / include y / foo / bar / lib directorios.
Recordé entonces, que no había cumplido la curl
desde el origen, y así fui a buscar los archivos de encabezado. Efectivamente, no fueron instalados. Ese era el problema. Make no se quejó de los archivos de encabezado faltantes. Así que no me di cuenta de que la opción --with-curl
no hizo nada (de hecho, es la predeterminada en mi versión de git
).
Hice lo siguiente para arreglarlo:
Añadido los encabezados necesarios para hacer:
yum install curl-devel (expat-devel-1.95.8-8.3.el5_5.3.i386 was already installed).
Se eliminó
git
de/usr/local
(ya que quiero que la nueva instalación viva allí).Simplemente quité
git*
de/usr/local/share
y/usr/local/libexec
Busque los directorios de inclusión que contienen los archivos de encabezado de
curl
y deexpat
, y luego (porque había leído a través de laconfigure
) los agregó al entorno así:export CURLDIR=/usr/include export EXPATDIR=/usr/include
Ran
configure
con las siguientes opciones, que, una vez más, se describieron en el propio archivo deconfigure
y también fueron los valores predeterminados, pero qué diablos:./configure --with-curl --with-expat
Y ahora
http
trabaja congit
través de mi firewall corporativo: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 ...
Usar proxychains
proxychains git pull ...
actualización: proxychains se suspende, use proxychains-ng lugar.
Ya hay algunas grandes respuestas sobre esto. Sin embargo, pensé que sería un chip, ya que algunos servidores proxy requieren que se autentique con un ID de usuario y una contraseña. A veces esto puede estar en un dominio.
Entonces, por ejemplo, si la configuración de su servidor proxy es la siguiente:
Server: myproxyserver
Port: 8080
Username: mydomain/myusername
Password: mypassword
Luego, agregue a su archivo .gitconfig
usando el siguiente comando:
git config --global http.proxy http://mydomain//myusername:mypassword@myproxyserver:8080
No te preocupes por https
. Mientras el servidor proxy especificado admita http y https, entonces una entrada en el archivo de configuración será suficiente.
Luego puede verificar que el comando agregó la entrada a su archivo .gitconfig
correctamente haciendo cat .gitconfig
:
Al final del archivo, verá una entrada de la siguiente manera:
[http]
proxy = http://mydomain//myusername:mypassword@myproxyserver:8080
¡Eso es!
puedes usar:
git config --add http.proxy http://user:password@proxy_host:proxy_port