【问题标题】:How to properly clone a visualstudio.com TFS Git repository from a command line?如何从命令行正确克隆 visualstudio.com TFS Git 存储库?
【发布时间】:2015-04-24 00:50:39
【问题描述】:

我正在尝试使用命令行 git 克隆位于 visualstudio.com 的基于 TFS 的 Git 存储库。 repo的实际地址是

https://kalamon.visualstudio.com/DefaultCollection/_git/gitp

我在我的个人资料中启用了“备用凭据”,我还设置了一个不包含@ 的用户名别名(因为这会搞砸git clone)。然而,所有尝试克隆 repo,或 pull 它或其他任何导致此错误的尝试:

Cloning into 'gitp'...
fatal: https://kalamon.visualstudio.com/DefaultCollection/_git/gitp/info/refs not valid: is this a git repository?

我在同一帐户上使用不同的 Git 存储库进行了尝试,结果相同。

我尝试过各种方法——比如将<username>:<password>@ 放在https:// 之后或使用_netrc,但没有任何效果。无论我尝试什么,都会发生同样的错误。命令行上没有提示我输入凭据。

当我使用curl 获得https://kalamon.visualstudio.com/DefaultCollection/_git/gitp/info/refs 并提供基本身份验证时,我可以毫无问题地获得它们。

从 VS2013 UI 克隆工作正常。但是,我确实需要能够从命令行执行此操作,因为我需要从脚本环境中进行克隆。

有人知道可能是什么问题吗?

更新

我进行了一些挖掘,结果发现只有我的帐户受到影响。当我在 visualstudio.com 上尝试使用其他帐户时,一切正常。

我也做了一些跟踪,结果发现在我的帐户上,来自 Git 服务器的响应有些奇怪(我会说不正确)- 服务器响应 302 而不是响应 401 错误代码(“未经身份验证”) ("redirect") - 重定向到登录页面。在正常工作的帐户上,服务器正确响应 401 代码并且一切正常。好像在我的帐户上没有设置“备用凭据”设置,服务器根本不允许基本身份验证。

我刚刚发现 visualstudio.com 有问题吗?

【问题讨论】:

  • 当涉及代理时,我也遇到了类似的问题。您是否使用代理连接到存储库?
  • 不,没有代理。连接是直接的
  • 你是如何安装 Git,哪个版本,从哪个 shell 调用的?您是否检查过凭据管理器中的旧用户/密码?
  • 备用凭据的存在并不能控制您是否获得 401 - 您可以直接从代码资源管理器复制和粘贴 URL 吗?这会改变行为吗? 302 将您重定向到哪里?
  • 我有同样的错误,但我的帐户可以在我的台式计算机上使用,并且一切都可以使用另一个帐户

标签: git visual-studio tfs


【解决方案1】:

我刚刚尝试使用 Git Bash 在我的 VSO 帐户上运行良好。

$ git clone https://user%40example.com:password@account.visualstudio.com/DefaultCollection/_git/Repository%20Name "Repository Name"

%40@ URL 转义的。

【讨论】:

  • 我一定还是做错了什么,因为这对我不起作用。
【解决方案2】:

found 说,如果您将 git 更新到较新的版本(我的版本是 1.7.1,更新后是 1.7.12.4),它会开始提示输入用户名和密码。那么您就不需要在克隆语句中提供用户名和/或密码了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2016-08-15
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多