git: fatal: no manejo el protocolo 'http'


307

Copié y pegué un comando git clone de una página web: https://fedorahosted.org/ibus-typing-booster/

Tengo esto:

user@host> git clone ​​http://git.fedorahosted.org/git/ibus-typing-booster.git

Cloning into 'ibus-typing-booster'...
fatal: I don't handle protocol '​​http'

También puede tomar las URL (correctas) de la parte inferior de la vista del repositorio aquí .
meter

@poke la URL es correcta. No entiendo lo que quieres decirme.
guettli

Puedes copiarlo / pegarlo desde allí. Es la URL generada por el visor del repositorio, y no una insertada manualmente en alguna wiki, por lo que probablemente sea más correcta.
meter

15
Esto me sucedió usando msys-git e intentando pegar (con ctrl-v y ctrl-shift-v), antes de darme cuenta de que no eran atajos de teclado válidos. Rehacer el comando y pegar con clic derecho-> pegar parecía funcionar.
Casey Kuball

1
para mí editar el inicio del protocolo y volver a escribir el mismo lo arregló. Puede haber algunos personajes invisibles utf desordenados.
Seenivasan

Respuestas:


631

Copié y pegué toda la línea git clone http://....

El personaje entre git cloney http://...parece un espacio, ¡pero es un personaje especial de Unicode !

Respuesta corta: ¡Después de eliminar este personaje e ingresar a un espacio real, funcionó!

Para las personas que aman los detalles: veo dos formas de revelar ascii vs caracteres especiales-unicode

Way1: Python

Aquí está la línea real:

vi t.txt # copy+paste the line
python
open('t.txt').read()
git clone \xe2\x80\x8b\xe2\x80\x8bhttp://...

Way2: menos

vi t.txt # copy+paste the line
LESSCHARSET=ascii less vi.txt

Si parece git clone <E2><80><8B><E2><80><8B>http://, entonces copia + pega caracteres especiales unicode.


8
Buen hallazgo! La razón de eso es probablemente ese icono allí.
meter

55
Pasé 3 horas buscando un problema con SSH / claves / conexión / envío de claves a Gitlab solo porque tenía un mensaje de clave pública denegado. : / Luego cambié a https y recibí el mensaje "no manejar", que me dio una propina. Y todos esos problemas fueron gracias a la apariencia espacial Unicode. Muchas, muchas gracias a ti @guettli y al combo Google / SO que me trajeron aquí.
LAFK dice Reinstate Monica el

3
Gracias. Veo dos formas de obtener soluciones: git podría eliminar esos caracteres especiales o el shell (uso bash). Perdí el tiempo, perdiste el tiempo ... si lo resumen, supongo que esto podría ser años de tiempo humano ... perdido. Es triste.
guettli

55
lo mismo aquí - copiando el enlace de github en el shell GIT de Windows
ootwch

1
@CiroSantilli 烏坎 事件 2016 六四 事件 法轮功 ¡gracias! xselgenera el contenido del portapapeles y hdrealiza un volcado hexadecimal. Agradable.
guettli

56

Use la tecla de retroceso para eliminar lo que haya entre git cloney urlluego use la barra espaciadora para agregar un espacio limpio entre ellos. Simple como eso.


@KathiravanNatarajan Me alegro de que haya sido útil.
Felipe Belluco

25

Simplemente agregué 5 "ESPACIOS" entre cloney el url:

  git clone     ​https://<PATH>/<TO>/<GIT_REPO>.git

¡y funciona!


@guettli ¡Funciona justo al agregar 5 espacios entre clon y http (s)! cuando leí esta respuesta trato de agregar algo de espacio, porque tenía prisa y no podía usar esta solución. Fue accidentalmente y no sé por qué funciona.
J.Hpour

16

Resumen: escriba la url en lugar de copiar y pegarla en la línea de comandos. Funcionó para mi.


1
Resumen de la respuesta anterior: El carácter entre clon y http: // ... parece un espacio, ¡pero es un carácter especial de Unicode! ¡Después de eliminar este personaje vacío e ingresar a un espacio real, funcionó! El contenido de t.txt es solo para personas interesadas en el "por qué" y no solo en "trabajos".
guettli

1
Esto ya se mencionó en varias otras respuestas (incluida la respuesta aceptada).
Pika el mago de las ballenas

14

Principalmente se debe a algunos caracteres invisibles Unicode que pueden aparecer si presiona "Ctrl + V" o "Ctrl + Shift + V" en la terminal. No copie y pegue todo el comando. En su lugar, escriba git clone y luego copie y pegue la URL con el botón derecho + Pegar.


13

Mi solución:

  1. Tipo: git clone.
  2. Copie la URL del repositorio y péguela después de git clone.
  3. Mueva el cursor a la posición entre git cloney https://....
  4. Eliminar espacio si tenía entre git cloney https://...hasta tenergit clonehttps://...
  5. Vuelva a agregar el espacio y presione Enter.

sorprendentemente funciona incluso si no vuelve a agregar el espacio
Styl

11

Usé comillas dobles para la URL y funcionó. Entonces algo como

git clone "​​http://git.fedorahosted.org/git/ibus-typing-booster.git"

funciona ... las comillas simples no ayudan. Tiene que ser comillas dobles.


4

También puedes usar un editor de texto:

  • Pegue la URL en el editor de texto.
  • Copie la URL que acaba de pegar desde el editor de texto
  • Péguelo en la línea de comando

2
Supongo que un simple golpe en el espacio de retroceso también ayuda
guettli

4

Por favor no copie del portapapeles. Simplemente copie la URL de la ubicación / barra de direcciones de su navegador.ingrese la descripción de la imagen aquí


La url no estaba en mi barra de direcciones. Era texto sin formato en una wiki.
guettli

no ... cuando pegue la URL en git bash. Suponga que después de git clone {su URL de repositorio}. toma caracteres adicionales entre clonar y su URL de repositorio. que puede verificar eliminando o presionando la tecla de retroceso antes de su URL de repositorio
Naveen Gupta

3

El mismo problema ocurrió conmigo cuando acabo de copiar la url en el portapapeles y luego la pegué en el terminal. Reescribir toda la línea sin la opción copiar y resolver resolvió mi problema.


¿Por qué escribes esta respuesta? ¿Crees que a la respuesta actual le falta algo?
guettli

1
Hola guettli, ¿estás seguro de que reescribir solo el carácter de espacio resolverá el problema mencionado en todos los casos posibles? ¿Es posible tener algo redundante / incorrecto no en el espacio en blanco sino también en los símbolos incluidos en el texto de la URL?
Arsen

Por supuesto, los caracteres especiales Unicode pueden estar en cualquier lugar. Agregué una segunda forma de "revelar ascii vs caracteres especiales Unicode" a mi respuesta.
guettli



1

clonando a continuación:

git clone https://github.com/zendframework/ZendSkeletonApplication.git

da error:

Cloning into 'ZendSkeletonApplication'...
fatal: I don't handle protocol 'https'

Lo modificó a:

git clone https://github.com/zendframework/ZendSkeletonApplication

funciona perfectamente o simplemente puede clonar la URL. Estoy usando os windows 10 y gitbash.


Hizo exactamente el mismo error. La respuesta aceptada funcionó para mí. Así está resuelto
Callat

1

si está utilizando Windows, use las marcas de voz 'url' para abrir y cerrar su url, por ejemplo, git clone 'your-url-here'


1

Verifique la URL que ha pegado y se necesita h adicional después de clonar.

Entonces, ya sea que haya pegado el clon de git completo http://<URL>.gito simplemente elimine la letra adicional antes de la URL del repositorio de git.


¿Qué quieres decir con "h adicional"?
guettli

1

en la opción de código visual studio git: clone probé todo, por ejemplo, poner 5 espacios de retroceso, eliminar el carácter especial de Unicode. y poner espacio nada me funciona

la solución me funciona

simplemente abra git bash y pegue toda la URL de clon de git y listo,

parece que hay algún problema con el código visual de estudio


1

Esto nos sucedió sin problemas de espacios en blanco, y cambiando https:para http:solucionarlo ...


Bien, eso funciona para ti. Pero creo que el verdadero problema fue el carácter especial de espacios en blanco que eliminó presionando la tecla de retroceso. No estoy seguro de si esta es realmente una respuesta válida a esta pregunta.
guettli

No lo creo. Lo escribí desde cero varias veces y obtuve el mismo error.
beroe el

y recibiste el mensaje de error "git: fatal: no manejo el protocolo 'http'"?
guettli

1
Es divertido, pero también tengo este problema, lo solucioné con esta solución y estoy bastante seguro de que no tengo ningún espacio en blanco especial
Babak Habibi

1

Respuesta relacionada con esta pregunta.
Error: fatal: no manejo el protocolo 'git clone https'
Estaba tratando de clonar el proyecto git a mi VScode recién instalado en mi sistema Linux, me copiaron toda la url del bit bit, que era como

git clone https: //abc@bitbucket.org/abcuser/myproject.git


Pero en realidad está ejecutando un comando como

git clone git clone https: //abc@bitbucket.org/abcuser/myproject.git

en el cubo de bits.
Así que simplemente siga los siguientes pasos:
1. Ingrese Ctr + p; Esto abrirá el cuadro de comando. Ingresa y abre 'Clonar'
2. Ahora solo pega la URL de tu repositorio git aquí. por ejemplo: https: //abc@bitbucket.org/abcuser/myproject.git
3. Después de ese cuadro para ingresar, su contraseña git aparecerá en la pantalla. Ingrese su contraseña de git aquí.
4. Hecho.


0

Bien, parece que si copia y pega el enlace del repositorio, termina con este problema.

Lo he notado esto

  1. Si usa el botón copiar en GitHub y luego pega la URL en GitBash (Windows), arroja este error
  2. Si selecciona el enlace y luego lo pega, entonces funciona, o también podría simplemente escribir la URL que también funciona.

Así que creo que podría ser un problema con el botón de copia de GitHub


No lo copié de github. Creo que fue el sistema de gestión de problemas trac.
guettli

0

Si está utilizando la GUI de Git Extensions o GitHub Desktop (significa que está utilizando algún software de UI y no una herramienta de línea de comandos) para clonar el repositorio, entonces debe copiar y pegar solo la URL, es decir, https: // ... Entonces no es necesario tener una git cloneURL anterior, ya que ese software lo hará por sí mismo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.