Pregunta

Nota:Si bien el caso de uso descrito trata sobre el uso de submódulos dentro de un proyecto, lo mismo se aplica a un caso normal. git clone de un repositorio a través de HTTP.

Tengo un proyecto bajo control de Git.Me gustaría agregar un submódulo:

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

pero lo entiendo

...
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 logrado que las recuperaciones HTTP funcionen consistentemente 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 consistentemente (rieles Por ejemplo).

¿Fue útil?

Solución 3

Lo que finalmente funcionó fue establecer la variable de entorno http_proxy. Había configurado HTTP_PROXY correctamente, pero aparentemente a git le gusta más la versión en minúsculas.

Otros consejos

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

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

Para autenticar con el proxy:

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

(El crédito va a @EugeneKulabuhov y @ JaimeReynoso para el formato de autenticación.)

Ya hay algunas respuestas geniales sobre esto. Sin embargo, pensé que sería mejor ya que algunos servidores proxy requieren que se autentique con un ID de usuario y 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. Siempre y cuando el servidor proxy especificado sea compatible con http y https, una entrada en el archivo de configuración será suficiente.

Luego puede verificar que el comando agregó la entrada a su cat .gitconfig archivo con éxito haciendo <=>:

Al final del archivo verá una entrada de la siguiente manera:

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

¡Eso es!

Parece que estás usando una compilación mingw de Git en Windows (o posiblemente otra de la que no he oído hablar). Hay formas de depurar esto: creo que todo el trabajo de proxy http para git se realiza mediante curl. Establezca esta variable de entorno antes de ejecutar git:

GIT_CURL_VERBOSE=1

Esto al menos debería darte una idea de lo que está sucediendo detrás de escena.

Si solo quiere usar proxy en un repositorio específico, no lo necesite en otros repositorios. La forma preferible es la opción -c, --config <key=value> cuando git clone un repositorio. por ejemplo,

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"

Cuando su equipo de red realiza una inspección SSL reescribiendo certificados, luego usando 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

También podría editar el archivo .gitconfig ubicado en el directorio% userprofile% en el sistema Windows ( bloc de notas% userprofile% .gitconfig ) o en el directorio ~ en el sistema Linux (< em> vi ~ / .gitconfig ) y agregue una sección http como se muestra a continuación.

Contenido del archivo .gitconfig:

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

Esta es una pregunta anterior, pero si está en Windows, considere configurar HTTPS_PROXY también si está recuperando a través de una URL https. ¡Trabajó para mí!

Para mí, el git: // simplemente no funciona a través del proxy, aunque el https: // sí. Esto causó un poco de dolor de cabeza porque estaba ejecutando scripts que usaban 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/

no encuentro ninguno http.proxy ni GIT_PROXY_COMMAND funciona para mi proxy http autenticado.El proxy no se activa de ninguna manera.Pero encuentro una manera de solucionar esto.

  1. Instalar sacacorchos, u otras alternativas que desee.
  2. Crea un archivo de autenticación.El formato para authfile es: user_name:password, y user_name, password es su nombre de usuario y contraseña para acceder a su proxy.Para crear un archivo de este tipo, simplemente ejecute un comando como este: echo "username:password" > ~/.ssh/authfile.

  3. Editar ~/.ssh/config, y asegúrese de que su permiso sea 644: 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 cada vez que hagas algo con git@github.com, utilizará el proxy automáticamente.Puedes hacer lo mismo fácilmente para Bitbucket también.

Esto no es tan elegante como otros enfoques, pero funciona de maravilla.

En Windows, si no desea poner su contraseña en .gitconfig en texto plano, puede usar

Le autentica contra proxy normal o incluso Windows NTLM e inicia proxy localhost sin autenticación.

Para ejecutarlo:

  • Instalar Cntml
  • Configure Cntml de acuerdo con la documentación para pasar su autenticación de proxy
  • Apunte git a su nuevo proxy localhost:

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

Para mí lo que funcionó fue:

sudo apt-get install socat

Cree un archivo dentro de su $ BIN_PATH / gitproxy con:

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

No olvides 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

Solo para publicar esto, ya que es el primer resultado en Google, esta publicación de blog que encontré me resuelve el problema actualizando los certificados curl.

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

Configurar proxy en git

comando

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

ejemplo

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

Esto me funcionó.

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

Tuve el mismo problema, con una solución ligeramente diferente: RECONSTRUCCIÓN DE GIT CON SOPORTE HTTP

El git: El protocolo 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, así que sé que mi http_proxy La variable de entorno es correcta.

Intenté usar http, como a continuación, pero obtuvo un error inmediato.

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

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

Intenté recompilar git así:

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

pero aún así recibí 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 curl y sus archivos de biblioteca están en

# Directorios /foo/bar/include y /foo/bar/lib.

Recordé entonces, que no había cumplido curl desde la fuente, y así buscó los archivos de encabezado.Efectivamente, no fueron instalados.Ese fue el problema.Make no se quejó de la falta de archivos de encabezado.Entonces no me di cuenta de que el --with-curl La opción no hizo nada (de hecho, es la opción predeterminada en mi versión de git).

Hice lo siguiente para solucionarlo:

  1. Se agregaron los encabezados necesarios para hacer:

    yum install curl-devel
    (expat-devel-1.95.8-8.3.el5_5.3.i386  was already installed).
    
  2. Remoto git de /usr/local (ya que quiero que la nueva instalación viva allí).

    simplemente lo eliminé git* de /usr/local/share y /usr/local/libexec

  3. Se buscaron los directorios de inclusión que contienen el curl y expat archivos de encabezado, y luego (porque había leído configure) los agregó al entorno de esta manera:

    export CURLDIR=/usr/include 
    export EXPATDIR=/usr/include
    
  4. Corrió configure con las siguientes opciones, que, nuevamente, se describieron en el configure archivo en sí, y también eran los valores predeterminados, pero qué diablos:

    ./configure  --with-curl --with-expat
    
  5. Y ahora http funciona con git a 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
    ...
    

puedes usar:

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

Establezca Git credential.helper en wincred.

git config --global credential.helper wincred

Asegúrese de que solo haya 1 credential.helper

git config -l

Si hay más de 1 y no está configurado para wincred, retírelo.

git config --system --unset credential.helper

Ahora configure el proxy sin contraseña.

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

Verifique que todas las configuraciones que agregó se vean bien ...

git config --global -l

¡Ahora estás listo para irte!

Esto no es un problema con su proxy. Es un problema con github (o git). También me falla en git-1.6.0.1 en linux. Error ya se ha informado (usted no menos).

Asegúrese de eliminar sus empanadas, ya están en google. Editar: Debe haber estado soñando, supongo que no puedes eliminarlos. Utilice Gist en su lugar?

$ http_proxy es para http://github.com .... $ https_proxy es para https://github.com ...

Para Windows

Goto - > C: / Users / user_name / 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 verificar su proxy y número de puerto?

Internet Explorer - > Configuraciones - & Gt; Opciones de Internet - & Gt; Conexiones - & Gt; Configuración de LAN

Utilice proxychains

proxychains git pull ...

actualización: proxychains se suspende, use proxychains-ng en su lugar.

Obtuve el proxy usando https ... algunos servidores proxy 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

Las respuestas anteriores funcionaron para mí cuando mi proxy no necesita autenticación. Si está utilizando un proxy que requiere que se autentique, 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 tiene problemas con Git como lo hice yo.

Como muchos respondieron esto, pero esto es solo para Winodws USUARIO que está detrás del proxy con autenticación.

Reinstalación (primer error, 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:PASS@proxy.abc.com:8080"

si tiene algún carácter especial en el uso de usuario / pase url_encode

como @ user2188765 ya ha señalado, intente reemplazar el protocolo git:// del repositorio con http[s]://. Consulte también esta respuesta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top