git提供程序错误中的不受支持的URL协议

问题描述:

我有两台连接到相同Gitlab repo的独立PC。运行Visual Studio Update 3和使用Team Explorer和Git。在一台PC上,我没有任何问题更新项目,然后推送提交到远程回购。然而,在另一台PC上,任何操作(推送或读取或同步)都会失败,出现Unsupported URL protocol错误,尽管最初我设法克隆了回购。我怀疑它不喜欢连接字符串中的某些内容,因为我可以使用命令行git(版本2.9.2非常近期)提交和同步该repo。这个错误的原因是什么,是否有解决方法?git提供程序错误中的不受支持的URL协议

+1

由于Git bash在其他计算机上工作,所以一种解决方法是只使用bash。您可以尝试比较两台计算机之间的Gitlab连接设置。 –

+0

是的,这是我正在使用的当前解决方法。有没有办法检查某种连接日志或连接字符串,因为它是在抱怨URL。我尝试了URL重写,但没有奏效。 – s952163

+2

比较来自两个Gitlabs的设置。一个在工作,所以你可以用它作为参考。 –

我已经检查了两个本地回购之间的差异,以及对git remote -v PC1给出:

起源https://gitlab.com/ ...

而在PC2:

出身的git @ gitlab.com:...

经过进一步调查,似乎VS2015 Update3使用的旧版本LibGit2缺少SSH支持。第一个回购是原始的,在VS中创建,第二个回购是通过命令行进行克隆的,因此是SSH连接字符串。

的解决方法是在.git/config连接字符串更改为

URL = https://gitlab.com/ ...

如果一个绝对需要SSH比它可以重新编译gitlib2,或者使用命令行混帐工程。在VS2015中使用其他Git源提供程序也许是可以的,但是我没有测试过它。 (例如Git Source Control Provider 2015