2011-12-27 25 views
9

Tengo un repositorio remoto con acceso HTTPS.Git: solicitud HTTP fallida

git status listas sólo una entrada: maestros

git remote -v listas dos entradas a la misma dirección: una para ir a buscar, una para empujar

Pero cuando lo haga git remote show origin, u otras operaciones, como fetch, que recibo :

error: while accessing https:... 
fatal: HTTP request failed 

estoy detrás de un proxy, pero ya que se encuentra en mi .gitconfig (sslVerify = no) y la clonación no está mal, no creo que el problema viene de eso.

PERO ... mi SO (CentOS) ha sido reinstalado. .

+0

¿Puedes compartir los primeros 6 caracteres de las URL 'git remote -v' para el origen, esp. el protocolo utilizado - http, https, ssh o git? –

Respuesta

3

me había propuesto el proxy HTTP en la variable de entorno HTTP_PROXY (Git Bash en Windows), pero sólo la configuración del proxy en mi% HOME%/gitconfig trabajaron:

[http] 
    proxy = http://USERNAME:[email protected]:PORT 
+1

Las variables de entorno distinguen entre mayúsculas y minúsculas y se encuentran en minúsculas como 'http_proxy'. (Por supuesto, algunos programas manejan ambos, pero otros no). –

25

Si está utilizando https: en lugar de git: para su clon, es posible que esté vomitando en el certificado de CA, es decir, no tiene una copia del certificado intermedio para verificar su conexión SSL. Me he encontrado con esto en un par de ocasiones diferentes. Por lo general, con distribuciones de Linux basadas en Debian. Pruebe

git config --global http.sslVerify false 

y luego vuelva a clonar. Si el clon funciona, eso es lo que está sucediendo. Sin embargo, esta es una mala solución, ya que por supuesto desactiva la verificación SSL, lo que hace que usar HTTPS sea inútil y lo deja vulnerable a los ataques de intermediarios.

Lo que hay que hacer es descargar el paquete de certificados CA para cualquier sistema operativo que está en, bajo Linux (así Debian/Ubuntu) probablemente será algo así como

apt-get install ca-certificates 

continuación

git config --global http.sslVerify true 
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt 

aunque su ruta al archivo de certificado puede ser diferente según la versión del sistema operativo.

Esto debería hacerlo funcionar.

+1

FYI Esta respuesta funciona en BeagleBone embedded Linux. –

+0

La otra cosa que deberá hacer en Beaglebone es habilitar ntp. Angstrom Linux se envía sin ntp instalado, y el Beaglebone no tiene batería de respaldo. Eso significa que la fecha se establece en el arranque al 1 de enero de 2000.Esto causa todo tipo de problemas, incluida la invalidación de los certificados SSL. –

0

Tengo el mismo error, pero es otro problema aparte del mencionado en el resto de las respuestas. Yo estaba tratando de clonar repositorio en Linux:

git clone http://xxx/scm/xxx/xxx.git 
Initialized empty Git repository in /opt/git/xxx/.git/ 
Password: 
error: Failed connect to xxx:80; Operation now in progress while accessing http://xxx.git/info/refs 

fatal: HTTP request failed 

suma, fue debido a permisos incorrectos a carpeta - pero git en lugar de algún error de permisos tiros petición HTTP falló. Entonces, si alguien encuentra un problema similar, ¡compruebe los permisos de la carpeta!