Git致命:协议'不支持

我正在浏览Github的分叉指南:https://guides.github.com/activities/forking/ 我正在尝试将存储库克隆到我的计算机上。

. sh

. sh
$ git clone https://github.com/./Spoon-Knife.git
Cloning into 'Spoon-Knife'...
fatal: protocol 'https' is not supported

也尝试了SSH:

$ git clone git@github.com:./Spoon-Knife.git
Cloning into 'Spoon-Knife'...
Warning: Permanently added the RSA host key for IP address '.' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.


Please make sure you have the correct access rights
and the repository exists.

我需要改变我的计算机上的一些配置设置,或者这是一个问题与GitHub?

编辑:我已经用“”替换了我的用户名和IP地址。

382619 次浏览

编辑: 通过启动一个新的终端会话解决了这个特定的用户问题。

不支持协议(https)之前的?。你想要的是:

git clone git@github.com:octocat/Spoon-Knife.git

或:

git clone https://github.com/octocat/Spoon-Knife.git

选择克隆的位置

有些可疑的事情正在发生。可能是一个不一致的github bug (a /B测试?)

我在windows10上,使用firefox。我刚刚复制了一个结帐URL,并获得了一个额外的字符。但这只是第一次。第二次它不在那里。我得看我的历史档案才知道!

以下是我的经历:

git clone --recursive https://github.com/amzeratul/halley-template
git clone --recursive http://github.com/amzeratul/halley-template
git clone --recursive github.com/amzeratul/halley-template
git clone --recursive https://github.com/amzeratul/halley-template

历史命令不显示额外的字符。就像我复制粘贴到终端时没有渲染一样。你可以看到我是如何试图删除's'然后是整个协议?当退格键比我预期的少移动一个字符时,我才被触发进一步调查!

我把我的shell历史文件保存在一个有十六进制编辑器的机器上,并且:

00000000  xx xx xx xx xx xx xx 0a  67 69 74 20 63 6c 6f 6e  |xxxxxxx.git clon|
00000010  65 20 2d 2d 72 65 63 75  72 73 69 76 65 20 c2 96  |e --recursive ..|
00000020  68 74 74 70 73 3a 2f 2f  67 69 74 68 75 62 2e 63  |https://github.c|
00000030  6f 6d 2f 61 6d 7a 65 72  61 74 75 6c 2f 68 61 6c  |om/amzeratul/hal|
00000040  6c 65 79 2d 74 65 6d 70  6c 61 74 65 0a 67 69 74  |ley-template.git|
00000050  20 2d 2d 68 65 6c 70 0a  67 69 74 20 75 70 64 61  | --help.git upda|
00000060  74 65 2d 67 69 74 2d 66  6f 72 2d 77 69 6e 64 6f  |te-git-for-windo|
00000070  77 73 0a 67 69 74 20 63  6c 6f 6e 65 20 2d 2d 72  |ws.git clone --r|
00000080  65 63 75 72 73 69 76 65  20 c2 96 68 74 74 70 73  |ecursive ..https|
00000090  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 61 6d  |://github.com/am|
000000a0  7a 65 72 61 74 75 6c 2f  68 61 6c 6c 65 79 2d 74  |zeratul/halley-t|
000000b0  65 6d 70 6c 61 74 65 0a  63 75 72 6c 20 2d 2d 76  |emplate.curl --v|
000000c0  65 72 73 69 6f 6e 0a 63  64 20 63 6f 64 65 0a 67  |ersion.cd code.g|
000000d0  69 74 20 63 6c 6f 6e 65  20 2d 2d 72 65 63 75 72  |it clone --recur|
000000e0  73 69 76 65 20 c2 96 68  74 74 70 73 3a 2f 2f 67  |sive ..https://g|
000000f0  69 74 68 75 62 2e 63 6f  6d 2f 61 6d 7a 65 72 61  |ithub.com/amzera|
00000100  74 75 6c 2f 68 61 6c 6c  65 79 2d 74 65 6d 70 6c  |tul/halley-templ|
00000110  61 74 65 0a 67 69 74 20  63 6c 6f 6e 65 20 2d 2d  |ate.git clone --|
00000120  72 65 63 75 72 73 69 76  65 20 c2 96 68 74 74 70  |recursive ..http|
00000130  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 61 6d  |://github.com/am|
00000140  7a 65 72 61 74 75 6c 2f  68 61 6c 6c 65 79 2d 74  |zeratul/halley-t|
00000150  65 6d 70 6c 61 74 65 0a  67 69 74 20 63 6c 6f 6e  |emplate.git clon|
00000160  65 20 2d 2d 72 65 63 75  72 73 69 76 65 20 67 69  |e --recursive gi|
00000170  74 68 75 62 2e 63 6f 6d  2f 61 6d 7a 65 72 61 74  |thub.com/amzerat|
00000180  75 6c 2f 68 61 6c 6c 65  79 2d 74 65 6d 70 6c 61  |ul/halley-templa|
00000190  74 65 0a 67 69 74 20 63  6c 6f 6e 65 20 2d 2d 72  |te.git clone --r|
000001a0  65 63 75 72 73 69 76 65  20 68 74 74 70 73 3a 2f  |ecursive https:/|
000001b0  2f 67 69 74 68 75 62 2e  63 6f 6d 2f 61 6d 7a 65  |/github.com/amze|
000001c0  72 61 74 75 6c 2f 68 61  6c 6c 65 79 2d 74 65 6d  |ratul/halley-tem|
000001d0  70 6c 61 74 65 0a                                 |plate.|
000001d6

在url之前插入了一个c2 96字符。不知道那是什么。它不是扩展ASCII(在那里它将是–),它被隐藏从几乎每一个地方,我粘贴,而它是在剪贴板上。我找到的最接近这个十六进制值将是https://www.fileformat.info/info/unicode/char/c298/index.htm,但我没有看到utf前缀的任何地方(再次,可能已经丢失)

这一切都可能是误导,因为我丢失了页面/剪贴板,并且只从保存的shell历史文件中工作,这可能是原始错误/恶意注入丢失的数据。

简单的答案是删除https

你的回购。:(git克隆https://........)

(git克隆://.......)

再次输入(git克隆https://........)

我刚在Windows 10上安装git并第一次运行它时遇到了同样的问题。重新启动bash窗口就解决了这个问题。

问题可能是这样的。

你试着用

  • __abc0 + __abc1

之前,它没有工作,所以你继续粘贴它与经典

  • 右击 -粘贴**。

遗憾的是,每当你在终端上输入CTRL + V时,它都会添加

  • a 隐藏的 < kbd > ^ ?< / kbd >

(至少在我的机器上是这样编码的)。

你这个角色只在你之后出现

  • 退格

(继续尝试git bash)。

所以你的链接变成^?https://...

无效。

只需在URL中使用双引号,例如:git clone "https://yourRepoUrl"

(它不知何故看到你正在使用2引号开始,不知道为什么)。

我得到了相同的错误=> fatal: protocol ''https' is not supported(你可以看到https上的2引号)。

我遇到了同样的问题,我所做的就是重新启动命令行,然后使用命令“cd documents”导航到文档文件夹,而不是用户文件夹。这应该是所有需要的。还要确保链接是正确的。

您使用的Windows或Linux计算机可能没有登录到git hub,因此无法验证证书。从系统中,你得到的错误登录到GitHub与凭据,然后尝试使用命令,它将工作。

使用http代替https;它会给出警告信息并重定向到https,得到克隆没有任何问题。

$ git clone http://github.com/karthikeyana/currency-note-classifier-counter.git
Cloning into 'currency-note-classifier-counter'...
warning: redirecting to https://github.com/karthikeyana/currency-note-classifier-counter.git
remote: Enumerating objects: 533, done.
remote: Total 533 (delta 0), reused 0 (delta 0), pack-reused 533
Receiving objects: 100% (533/533), 608.96 KiB | 29.00 KiB/s, done.
Resolving deltas: 100% (295/295), done.

问题

git clone https://github.com/rojarfast1991/TestGit.git 致命:协议“https”不支持

解决方案:

步骤:

(1):-打开新终端并克隆git存储库

git clone https://github.com/rojarfast1991/TestGit.git

(2) git自动登录提示将打开,并要求您输入用户凭证。

用户名:—xxxxxxx

密码:—xxxxxxx

最后,克隆将开始…

git clone https://github.com/rojarfast1991/TestGit.git
Cloning into 'TestGit'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

从普通记事本复制:

git clone https://github.com/./Spoon-Knife.git

然后在cmd中粘贴。

我尝试了很多方法来解决这个问题。但是我一次又一次的失败。然后我这样做了:

打开Git Bash >到你的directory > 粘贴 git clone https://shahadat@bitbucket.org/*******.git之后会显示一个命令提示符来提供登录凭据。提供凭证并克隆您的项目。

你试过了:

__abc0 + __abc1

只需右击,然后点击粘贴

当我试图聪明地从回购的URL中提取克隆URL时,我得到了这个错误。我做错了。我正在做:

git@https://github.company.com/Project/Core-iOS

我必须这样做:

git@github.company.com:Project/Core-iOS.git

我犯了3个错误:

  • 不需要https://
  • .com之后,我需要:而不是/
  • 在最后,我需要一个.git

即使在点赞最多的答案。修复后,这个问题仍然存在

更具体地说,我粘贴的链接没有“Ctrl + v”,但它仍然给出fatal: protocol 'https' is not supported

如果你在Windows或谷歌搜索栏中复制该消息,你会发现实际的消息是fatal: protocol '##https' is not supported,其中'#'代表这个角色。正如您所看到的,这两个字符还没有被删除。

我正在工作的IntelliJ IDEA社区版2019.2.3和以下修复指的是这个工具,的答案是,这2个字符仍然存在,需要从链接中删除

IntelliJ修复

进入顶部栏,选择VCS -> Git -> Remotes…并点击。

 ></a></p>


<p>现在它会打开连接这个的东西</p>


<p><a href=enter image description here

你可以看到那两个无法识别的字符。我们必须移除它们。要么点击编辑图标并删除这两个字符,要么删除链接并添加一个新的。

确保你有”。项目文件夹中的Git文件夹

enter image description here

现在应该是这样。点击“Ok”,现在你可以把文件推送到git存储库中了。

enter image description here

只需添加这个git config --global http.sslVerify false ,这样它就不会检查证书。

如果你正在使用Git Bash:

不要通过按Ctrl + V来粘贴链接。
你可以输入git克隆右击,然后粘贴.

当我试图通过Visual Studio克隆时,我得到了这个错误。当我在PowerShell中做同样的事情时,它工作得很好。

我得到了一个看起来非常类似的错误,因为我在URL周围放了单引号:

致命:不支持协议“https”

从URL中删除单引号可以解决这个问题。

如果您正在使用Visual Studio或Git GUI进行克隆,您需要删除&;Git clone&;命令。只需要地址。

上传项目到github

git init
echo . > .gitignore
git commit -m "commit"
git remote add origin "https://github.com/anmolmishra99/Delhi-Flask-WebApp.git"
git remote -v
git pull origin master
git push origin master

enter image description here

人们通常点击Github或Bitbucket中的复制按钮,并将其粘贴到“Clone a repository”上。页面。

您需要删除“git克隆”;命令从前面的你已经复制。只需粘贴以"https://...."开头的URL。那么它应该可以工作。

否则,您将得到https不支持的消息。

在我的例子中,push在一开始就有一个空格字符(。git \配置文件)

[remote "origin"]
url = https://gitlab____.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = " https://gitlab____.git"

去掉它,问题就解决了。