git - git 提供程序错误中不支持的 URL 协议(protocol)

标签 git github visual-studio-2015 gitlab

我有两台独立的 PC 连接到同一个 Gitlab 存储库。既运行 Visual Studio Update 3 又将 Team Explorer 与 Git 结合使用。在一台 PC 上,我可以毫无问题地更新项目,然后将提交推送到远程仓库。然而,在另一台 PC 上,任何操作(推送或获取或同步)都将失败并出现 Unsupported URL protocol 错误,尽管最初我设法克隆了 repo。我怀疑它不喜欢连接字符串中的某些内容,因为我可以使用命令行 git(最近的版本 2.9.2)提交和同步 repo。此错误的原因是什么,是否有解决方法?

最佳答案

我检查了两个本地仓库之间的区别,PC1 上的 git remote -v 给出:

origin https://gitlab.com/ ...

在 PC2 上:

origin git@gitlab.com: ...

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

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

url = https://gitlab.com/ ...

如果绝对需要 SSH,则可以重新编译 gitlib2,或使用可行的命令行 git。可能可以在 VS2015 中使用其他 Git 源提供程序,但我还没有测试过。 (例如 Git Source Control Provider 2015 )

关于git - git 提供程序错误中不支持的 URL 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38602178/

相关文章:

git - 在 docker 容器中克隆私有(private) git 存储库

git - GitHub 如何处理推送安全?

github - 使用 Plastic SCM 同步 github 上的 fork

c# - 如何使用 Roslyn 编译器禁用 RECS* 警告

npm - 如何在 Visual Studio 2015 中配置私有(private) NPM 和 Bower 注册表

c# - 为什么我们不能使用 expression-bodied 构造函数?

node.js - 无法使用 Git Bash 运行 mongo/mongod,但它在 Git CMD 中运行(mongo : not found)

git - 在另一个公共(public) GitHub 存储库更改上触发自动 Docker Hub 构建

Git:试图回溯已删除分支上的压缩提交 - 这可能吗?

git 无法 pull 远程更改