即使curl适用于https页面,也无法克隆https存储库

时间:2013-11-02 14:07:14

标签: git curl https

我已经尝试了一切,但似乎仍无法通过https克隆git存储库,即使我在获取https页面时没有问题。

cURL版本:

$ curl --version 
curl 7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz 

尝试克隆https repo:

$git clone https://github.com/SublimeText/LaTeXTools.git
Cloning into 'LaTeXTools'...
error: Protocol https not supported or disabled in libcurl while accessing https
://github.com/SublimeText/LaTeXTools.git/info/refs?service=git-upload-pack
fatal: HTTP request failed

适用于https页面没问题:

$ curl -L https://www.google.com
<!doctype html><html 
...
</script></body></html>

有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:2)

git可能使用与命令行curl不同的libcurl.dll。确保您的%PATH%上没有任何其他libcurl.dll版本来自您安装的其他内容,只是与git捆绑在一起的内容。

答案 1 :(得分:1)

这可能是两个不同卷曲版本之间的冲突(默认情况下一个安装在系统上,一个由于你的路径而实际使用)

您可以看到一个示例in this thread

  

由于某种原因,/usr/local/bin中安装了卷曲,我的$PATH开始“/usr/local/bin:/usr/bin: ...”。   我做的是删除了/usr/local/bin/curl,然后在/usr/bin/curl/usr/local/bin/curl)创建了ln -s /usr/bin/curl /usr/bin/local/curl的符号链接,然后删除了/usr/local/lib中的所有curl库。

您可以在“How do I enable https support in libcurl?”中看到同样的问题(这次是在Mac上)。

答案 2 :(得分:0)

我猜原因是libcurl.dlls之间存在冲突。如果有人从谷歌或类似的东西发现这个问题,我的解决方案就像卸载和重新安装Git一样简单。这就行了。

感谢其他答案。欢呼声。