git: fatal: eu não manipulo o protocolo 'http'


307

Copiei e colei um comando git clone de uma página da web: https://fedorahosted.org/ibus-typing-booster/

Eu tenho esse:

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'

Você também pode pegar os URLs (corretos) na parte inferior da visualização do repositório aqui .
cutuca

@poke o URL está correto. Eu não entendo o que você quer me dizer.
27515 guettli

Você pode copiar / colar a partir daí. É a URL gerada pelo visualizador de repositório, e não a inserida manualmente em algum wiki, por isso é provavelmente mais correta.
Poke

15
Isso aconteceu comigo usando o msys-git e tentando colar (com ctrl-v e ctrl-shift-v), antes de perceber que não eram atalhos de teclado válidos. Refazer o comando e colar com o botão direito do mouse-> colar parecia funcionar.
Casey Kuball

1
para mim editar o início do protocolo e redigitar o mesmo corrigi-lo. Pode ser que alguns caracteres utf invisíveis mexam nas coisas.
Seenivasan

Respostas:


631

Copiei e colei toda a linha git clone http://....

O caractere entre git clonee http://...parece um espaço, mas é um caractere Unicode especial !

Resposta curta: Depois de remover esse personagem e entrar em um espaço real, funcionou!

Para pessoas que amam detalhes: vejo duas maneiras de revelar ascii vs caracteres unicode especiais

Way1: Python

Aqui está a linha 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

Se parecer git clone <E2><80><8B><E2><80><8B>http://, você copia + caracteres unicode especiais colados.


8
Bom achado! A razão para isso é provavelmente esse ícone lá.
Poke

5
Passei 3 horas procurando um problema com o SSH / chaves / conexão / enviando as chaves ao Gitlab apenas porque minha mensagem de chave pública foi negada. : / Então mudei para https e recebi a mensagem "não manuseio", que me deu uma dica. E todo esse problema foi graças ao espaço Unicode semelhante. Muito, muito obrigado a você @ guettli e Google / SO combo que me levou aqui.
LAFK diz Restabelecer Monica

3
Obrigado. Eu vejo duas maneiras de obter soluções alternativas: o git pode remover esses caracteres especiais ou o shell (eu uso o bash). Eu perdi tempo, você perdeu tempo ... se você resumir isso, acho que pode ser anos de tempo humano ... desperdiçado. É triste.
guettli

5
mesmo aqui - copiar link de github em janelas GIT shell
ootwch

1
@CiroSantilli 烏坎 事件 2016 六四 事件 法轮功 thank you! xselgera o conteúdo da área de transferência e hdfaz um despejo hexadecimal. Agradável.
guettli

56

Use backspace para excluir o que houver entre git clonee o urle, em seguida, use a barra de espaço para adicionar um espaço limpo entre eles. Simples assim.


@KathiravanNatarajan Fico feliz que tenha sido útil.
Felipe Belluco

25

Eu simplesmente adicionei 5 "ESPAÇOS" entre clonee o url:

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

e funciona!


@ guettli Funciona exatamente ao adicionar 5 espaços entre o clone e o http (s)! Quando leio esta resposta , tento adicionar um pouco de espaço, porque estava com pressa e não conseguia usar esta solução. Foi acidentalmente e não sei por que funciona!
J.Hpour

16

Resumo: digite o URL em vez de copiar e colar na linha de comando. Funcionou para mim.


1
Resumo da resposta acima: O caractere entre clone e http: // ... parece um espaço, mas é um caractere Unicode especial! Depois de remover esse caractere vazio e entrar em um espaço real, funcionou! O material com t.txt é apenas para pessoas interessadas no "por que" e não apenas em "funciona".
guettli

1
Isso já foi mencionado em várias outras respostas (incluindo a resposta aceita).
Pika, o Mago das Baleias,

14

Principalmente devido a alguns caracteres unicode invisíveis que podem surgir se você pressionar "Ctrl + V" ou "Ctrl + Shift + V" no terminal. Não copie e cole o comando inteiro. Em vez disso, digite git clone e copie e cole o URL usando o Botão Direito + Colar.


13

Minha solução:

  1. Tipo: git clone.
  2. Copie o URL do repositório e cole-o depois de git clone.
  3. Mova o cursor para a posição entre git clonee https://....
  4. Exclua o espaço se houver entre git clonee https://...até tergit clonehttps://...
  5. Adicione novamente o espaço e pressione Enter.

surpreendentemente funciona mesmo se você não adicionar novamente o espaço
Styl

11

Usei aspas duplas para o URL e funcionou. Então, algo como

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

funciona .. aspas simples não ajudam. Tem que ser aspas duplas.


4

Você também pode usar um editor de texto:

  • Cole o URL no editor de texto
  • Copie o URL que foi colado do editor de texto
  • Cole-o na linha de comando

2
Eu acho que uma simples batida em backspace não ajuda, também
guettli

4

Por favor, não copie da área de transferência. Basta copiar o URL da barra de localização / endereço do seu navegador.insira a descrição da imagem aqui


O URL não estava na minha barra de endereço. Era texto simples em um wiki.
guettli

não .. ao colar o URL no git bash. Suponha que o git clone {URL do seu repo} seja utilizado. que você pode verificar, suprimindo ou bater backspace antes de seu url repo
Naveen Gupta

3

O mesmo problema aconteceu comigo quando eu apenas copiei o URL na área de transferência e colei no terminal. Reescrever toda a linha sem a opção copiar e colar resolveu meu problema.


Por que você escreve esta resposta? Você acha que a resposta atual está faltando alguma coisa?
guettli

1
Oi guettli, Tem certeza de que reescrever apenas o caractere de espaço resolverá o problema mencionado em todos os casos possíveis? É possível ter algo redundante / incorreto não no espaço em branco, mas também nos símbolos incluídos no texto da URL?
Arsen 23/12

é claro que caracteres unicode especiais podem estar em qualquer lugar. Eu adicionei uma segunda maneira de "revelar caracteres ASCII vs caracteres unicode especiais" à minha resposta.
guettli

3

No Android Studio:

Eu removi o clone do git e apenas retive apenas o URL e funcionou !!



1

clonagem abaixo:

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

dá erro:

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

Modificado para:

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

funciona perfeitamente ou você pode simplesmente clonar o URL. Estou usando o windows 10 e gitbash.


Cometeu exatamente o mesmo erro. A resposta aceita funcionou para mim. Por isso, está resolvido
Callat 08/02/19

1

se você estiver usando o Windows, use marcas de voz 'url' para abrir e fechar sua URL, por exemplo, git clone 'your-url-here'


1

Verifique o URL que você colou e leva mais h após o clone.

Então, você deve colar o clone git completo http://<URL>.gitou apenas remover uma letra adicional antes do URL do repositório git.


O que você quer dizer com "h adicional"?
guettli

1

na opção de código do visual studio git: clone, tentei de tudo, por exemplo, colocando 5 backspace, excluindo o caractere Unicode especial! e colocando espaço nada funciona para mim

solução funciona para mim

basta abrir o git bash e colar todo o URL do clone do git e pronto,

parece que há algum problema com o código do visual studio


1

Isso aconteceu conosco sem problemas de espaço em branco e a alteração https:para http:corrigi-lo ...


Bom, isso funciona para você. Mas acho que o problema real foi o caractere de espaço em branco especial que você removeu ao pressionar backspace. Não tenho certeza se essa é realmente uma resposta válida para esta pergunta.
guettli

Acho que não. Digitei do zero várias vezes e recebi o mesmo erro.
precisa saber é

e você recebeu a mensagem de erro "git: fatal: eu não manipulo o protocolo 'http'"?
guettli

1
É engraçado, mas eu também tenho esse problema e eu o corrigi com esta solução e tenho certeza de que não tenho caracteres especiais em branco
Babak Habibi #

1

Resposta relacionada a esta pergunta.
Erro - fatal: eu não manipulo o protocolo 'git clone https'
Eu estava tentando clonar o projeto git no meu VScode recém-instalado no meu sistema Linux, copiei o URL inteiro do bit bucket, que era como

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


Mas, na verdade, ele está executando o comando como

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

no balde de bits.
Então, basta seguir os seguintes passos:
1. Digite Ctr + p; isso abrirá a caixa de comando. Digite e abra 'Clone'
2. Agora cole apenas o URL do seu repositório git aqui. por exemplo: https: //abc@bitbucket.org/abcuser/myproject.git
3. Depois dessa caixa para inserir sua senha do git aparecerá na tela. Digite sua senha do git aqui.
4. Feito.


0

Bem, parece que se você copiar e colar o link do repositório, você acaba com esse problema.

O que eu notei isso

  1. Se você usar o botão copiar no GitHub e colar o URL no GitBash (Windows), ele emitirá este erro
  2. Se você selecionar o link e colar, ele funcionará, ou você também pode digitar o URL que também funciona.

Acho que pode haver um problema com o botão de cópia do GitHub


Não o copiei do github. Eu acho que foi o sistema de gerenciamento de problemas trac.
guettli

0

Se você estiver usando Git extensões GUI ou GitHub desktop (meios se você estiver usando qualquer software de interface do usuário e não ferramenta de linha de comando) para clonar o repo então você tem que copiar e colar apenas o URL ou seja, https: // ... Então, não há necessidade de ter um git cloneURL anterior, pois esse software fará isso sozinho.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.