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'
guettli
fonte
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.

guettli
fonte
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.

Felipe Belluco
fonte
@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!

J.Hpour
fonte
@ 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.

Rajan
fonte
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.

Paritosh Mahajan
fonte
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.
Christian Carrillo
fonte
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.

mhn
fonte
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
Zovfreullia
fonte
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

Reezoo
fonte
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.

Arsen
fonte
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 !!

Suraj Vaishnav
fonte
2

A solução é muito simples:

1- Copie seu caminho git. por exemplo: http://github.com/yourname/my-git-project.git

2- Abra o bloco de notas e cole-o. Em seguida, copie o caminho do bloco de notas.

3- cole o caminho para a linha de comando

é isso aí.

Fatihd
fonte
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.

vidur punj
fonte
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'

Jeremy
fonte
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.

Naveen Gupta
fonte
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

Yusuf Khan
fonte
1

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

beroe
fonte
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: //[email protected]/abcuser/myproject.git


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

clone do git clone do git https: //[email protected]/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: //[email protected]/abcuser/myproject.git
3. Depois dessa caixa para inserir sua senha do git aparecerá na tela. Digite sua senha do git aqui.
4. Feito.

tejraj
fonte
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

Prostil Hardi
fonte
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.

Inzimam Tariq IT
fonte