Git错误:无法处理https

7
当我尝试使用git clone https://xxx时,出现以下错误:
我无法处理协议“https”
请问有人能帮助我吗?
完整信息:
dementrock@dementrock-A8Se:~$ git clone https://git.innostaa.com/innostaa.git 克隆到 innostaa...
致命: 无法找到'HTTPS'的远程助手
dementrock@dementrock-A8Se:~$ git --version
git版本1.7.4

1
你正在运行哪个版本的Ubuntu?Git的版本是多少? - Dave G
你能复制粘贴一下你的错误信息吗?还有git --version的输出结果? - Sylvain Defresne
1
版本0.99.9i非常老(大约在2005年),可能还不支持https。您应该考虑升级到1.7.x。 - Lars Noschinski
使用git版本1.7.6仍然存在相同的问题...有解决方法吗?我猜升级到新版本也没有帮助。 - stefanB
5个回答

12

在Windows上为Git 1.7.9解决了这个问题。似乎在Windows上的许多GIT实例中都会发生。这与命令行中的URL未被正确转义有关。

解决方案:将git存储库的URL放入单引号' https://.......'


这同样也适用于我在Linux上使用Git 1.7.1时的问题。 - Bala Clark
2
另外,它已经为我修复了,但我必须使用双引号。我是在Cygwin中使用的。 - ksclarke
2
双引号在我的git version 2.6.4.windows.1中有效。 - astrojuanlu
对于我,使用Windows 7和Git 2.10.1.windows.1时只有双引号有效! - DSoldo
在Cygwin上对我有用,还必须修改.git/config中的URL。 - altroware

7

git的版本0.99.9i可能不支持https协议。

尝试安装更高版本的git。最简单的解决方案是通过apt-get安装:

$ apt-get update
$ apt-get install git

接下来检查使用的正确版本:

$ hash -r
$ which git
/usr/bin/git

如果返回的字符串不是/usr/bin/git,那么你的PATH中有另一个旧版本的git掩盖了较新的版本。请删除它。
如果您不想通过apt-get安装git,或者您没有管理员权限,则可以从源代码构建它。您可以从git网站下载,并且编译应该非常简单:
$ tar -xvfj git-1.7.4.2.tar.bz2
$ cd git-1.7.4.2
$ ./configure --prefix=$HOME/install
$ make && make install

接下来,您需要将$HOME/install/bin添加到您的PATH中。

$ hash -r
$ PATH="$HOME/install/bin:${PATH}"
$ git --version
git version 1.7.4.2

1
谢谢,我已经编辑了PATH以更新我的git,但问题仍然存在;现在版本是1.7.4,我收到了错误消息:fatal: Unable to find remote helper for 'https'。 - dementrock
@dementrock: 你不会是用一个前缀构建了git,然后在那里使用make install安装它,然后将其移动到其他地方了吧? - Cascabel
你在使用 git version 1.7.6 时遇到了同样的问题吗?你能通过 https 克隆吗?你之前展示的 git 版本无法通过 https 克隆。 - stefanB

2

我有同样的问题,但原因在于我的.git配置。我按照以下方式更改了配置文件:

.git/config

enter code here[remote "heroku"]
        url = git@heroku.com:rocky-bayou-4315.git
        fetch = +refs/heads/*:refs/remotes/heroku/*

rocky-bayou-4315是我的Heroku应用程序,它是通过$ heroku create命令创建的。


0

刚在cygwin上用git 1.7.9遇到了这个问题。 使用双引号""将https URL括起来可以解决我的问题。

例如:

git clone "https://github.com/joyent/node.git"


0

在尝试“获取上游”时,我遇到了同样的问题。我通过获取Git只读地址而不是https来解决了这个问题。

细节: 我有一个需要从原始repo更新的分叉存储库。使用github的帮助,我添加了一个远程上游并尝试获取它。

然后我去了Git-hub,在通常获取repo地址的地方,我点击了“Git只读”按钮并获得了一个新的URL。我删除了我的过去的上游,并添加了一个新的URL,这完美地解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接