git:致命的:我不处理协议'http'


307

我从以下网页复制并粘贴了git clone命令:https : //fedorahosted.org/ibus-typing-booster/

我懂了:

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'

您还可以从此处的存储库视图底部获取(正确的)URL 。
2015年

@poke URL是正确的。我不明白你想告诉我什么。
guettli 2015年

您可以从那里复制/粘贴它。它是资源库查看器生成的URL,而不是在某些Wiki中手动插入的URL,因此可能更正确。

15
在意识到它们不是有效的键盘快捷键之前,我使用msys-git并尝试进行粘贴(使用ctrl-v和ctrl-shift-v)。重做命令并使用右键单击->粘贴粘贴似乎可以正常工作。
Casey Kuball

1
对我来说,编辑协议的开始并重新键入相同即可解决。可能是一些看不见的utf字符弄乱了东西。
Seenivasan

Answers:


630

我复制并粘贴了整行git clone http://...

git clone和之间的字符http://...看起来像一个空格,但这是一个特殊的Unicode字符

简短的答案:删除此字符并输入真实空间后,它起作用了!

对于喜欢细节的人:我看到两种显示ascii与特殊unicode字符的方法

方式1:Python

这是真实的一行:

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

方式2:更少

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

如果看起来像git clone <E2><80><8B><E2><80><8B>http://,则您复制并粘贴了特殊的unicode字符。


8
好发现!原因可能是那里的图标。

5
我花了3个小时来寻找SSH /密钥/连接/将密钥提交给Gitlab的问题,因为我收到了拒绝公开密钥的消息。:/然后我切换到https并收到“不处理”消息,提示我。而所有这些麻烦归功于Unicode外观相似。非常感谢您@guettli和Google / SO组合使我来到了这里。
LAFK说恢复莫妮卡

3
谢谢。我看到两种解决方法:git可以剥离那些特殊字符或shell(我使用bash)。我浪费了时间,您浪费了时间....如果您总结一下,我想这可能是多年的人类时间...浪费了。这是可悲的。
guettli '16

5
同样在这里-将链接从github复制到Windows GIT shell中
ootwch

1
@CiroSantilli乌坎事件2016六四事件法轮功谢谢!xsel输出剪贴板内容,并hd进行十六进制转储。真好
guettli

56

使用退格键删除git clone和之间的所有内容url,然后使用空格键在它们之间添加一个干净的空格。就那么简单。


@KathiravanNatarajan我很高兴它很有用。
费利佩·贝卢科

25

我在和之间简单地添加了5个 “空格” :cloneurl

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

而且有效!


@guettli它仅在克隆和http之间添加5个空格时有效!当我阅读此答案时,我尝试添加一些空间,因为我很着急,无法使用 解决方案。这是偶然的,我不知道它为什么起作用!
J.Hpour

16

摘要:键入URL,而不是复制并将其粘贴到命令行中。它为我工作。


1
答案上方的摘要:clone和http:// ...之间的字符看起来像一个空格,但这是一个特殊的Unicode字符!删除此空字符并输入实际空间后,它起作用了!t.txt的内容仅适用于对“为什么”感兴趣的人,而不仅仅是对“作品”感兴趣的人。
guettli 2015年

1
其他答案(包括已接受的答案)中已经提到了这一点。
鲸鱼巫师皮卡

14

通常,这是由于在终端中单击“ Ctrl + V”或“ Ctrl + Shift + V”会出现一些不可见的Unicode字符。不要复制并粘贴整个命令。而是键入 git clone,然后使用“ 右键单击+粘贴”复制并粘贴URL


13

我的解决方案:

  1. 类型:git clone
  2. 复制存储库网址,并将其粘贴到之后git clone
  3. 将光标移动到git clone和之间的位置https://...
  4. 如果有删除之间的空间git clone,并https://...直到有git clonehttps://...
  5. 重新添加空间,然后按Enter

令人惊讶的是,即使您不重新添加空间,它也可以正常工作
Styl

11

我对网址使用了双引号,并且可以正常工作。所以像

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

作品..单引号没有帮助。它必须是双引号。


4

您还可以使用文本编辑器:

  • 将网址粘贴到文本编辑器中
  • 复制刚从文本编辑器粘贴的URL
  • 将其粘贴在命令行中

2
我想在退格一个简单的命中确实有用,太
guettli

4

请不要从剪贴板复制。只需从浏览器的位置/地址栏中复制网址即可。在此处输入图片说明


该网址不在我的地址栏中。它是Wiki中的纯文本。
guettli

否。在git bash中粘贴URL时。假设在git clone {您的回购URL}之后。在clone和您的回购URL之间需要附加字符。您可以通过删除或打你的回购的URL,然后退格查
纳文古普塔

3

我刚将网址复制到剪贴板,然后将其粘贴到终端时,发生了同样的问题。不用复制过去选项重写整个行解决了我的问题。


你为什么写这个答案?您是否认为当前答案缺少某些内容?
guettli '16

1
嗨,guettli,您确定仅重写空格字符就能在所有可能的情况下解决上述问题吗?是否有可能在URL文本中包含的符号中而不是在空格中包含多余/不正确的内容?
Arsen

当然,特殊的unicode字符可以在任何地方。我在答案中添加了第二种方式“显示ASCII与特殊Unicode字符”。
guettli



1

在下面克隆:

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

给出错误:

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

修改为:

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

完美地工作,或者您可以git clone URL。我正在使用OS Windows 10和gitbash。


它确实有完全相同的错误。接受的答案对我有用。所以它解决了
卡勒特

1

如果您使用的是Windows,请使用“ URL”语音标记打开和关闭您的URL,例如git clone'your-url-here'


1

请检查您粘贴的网址,克隆后还需要额外的h。

因此,您可以粘贴完整的git克隆,http://<URL>.git或者只是删除git存储库URL之前的其他字母。


“附加h”是什么意思?
guettli

1

在Visual Studio代码选项git:clone中,我尝试了所有操作,例如,放5个空格,删除特殊的Unicode字符!放空间对我没有用

解决方案对我有用

只需打开git bash并粘贴整个git clone网址并完成,

视觉工作室代码似乎有问题


1

这只是发生在我们身上,没有任何空格问题,并进行了更改https:http:解决此问题...


很好,这对您有用。但是我认为真正的问题是特殊的空格字符,您可以通过按退格键将其删除。我不确定这是否真的是这个问题的有效答案。
guettli

我不这么认为。我从头开始键入了几次,并得到了相同的错误。
beroe

并且您收到错误消息``git:致命:我不处理协议'http'''?
guettli

1
这很有趣,但是我也遇到了这个问题,并且我使用此解决方案对其进行了修复,我很确定自己没有任何特殊的空白字符
Babak Habibi,

1

这个问题的相关答案。
错误-致命:我不处理协议'git clone https',
我试图将git项目克隆到我的Linux系统中新安装的VScode中,我从位存储桶中复制了整个URL,就像

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


但实际上它像运行命令

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

在位桶中。
因此,只需执行以下步骤:
1.输入Ctr + p;这将打开命令框。输入并打开“克隆”
2。现在仅在此处粘贴您的git存储库的URL。例如:https://abc@bitbucket.org/abcuser/myproject.git
3.输入该框后,您的git密码将出现在屏幕上。在这里输入您的git密码。
4.完成。


0

好吧,如果您复制粘贴存储库链接,就可能会遇到此问题。

我注意到了这一点

  1. 如果您使用GitHub上的复制按钮,然后将URL粘贴到GitBash(Windows)中,则会引发此错误
  2. 如果选择该链接然后粘贴,则该链接有效,或者也可以键入同样有效的URL。

所以我认为GitHub复制按钮可能是一个问题


我没有从github复制它。我认为这是问题管理系统。
盖特利

0

如果您使用的是Git Extensions GUI或GitHub Desktop(意味着您使用的是任何UI软件而不是命令行工具)来克隆存储库,那么您仅需复制并粘贴URL,即https:// ...所以git cloneURL之前没有必要,因为该软件将自己完成。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.