如何在命令行中正确地克隆visualstudio.com TFS Git存储库?

7
我正在尝试使用命令行git克隆一个位于visualstudio.com的基于TFS的Git存储库。存储库的实际地址是:
https://kalamon.visualstudio.com/DefaultCollection/_git/gitp

我在个人资料中启用了“备用凭据”,并设置了一个不包含@的用户名别名(因为这会使git clone出错)。然而,所有尝试克隆存储库,或拉取它或其他任何操作都会导致此错误:

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

我在同一账户下尝试了不同的Git仓库,结果相同。

我尝试了各种方法 - 比如在https://后面加上<username>:<password>@或使用_netrc,但是无论我尝试什么都无法解决问题。命令行中不提示输入凭证。

当我使用curl获取https://kalamon.visualstudio.com/DefaultCollection/_git/gitp/info/refs并提供基本身份验证时,可以顺利获取。

从VS2013 UI克隆工作正常。然而,我真的需要能够从命令行执行此操作,因为我需要使克隆工作在脚本环境中。

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

更新

我进行了一些调查,发现只有我的帐户受到影响。当我在visualstudio.com上尝试不同的帐户时,一切正常。

我还进行了一些跟踪,结果显示我的帐户从Git服务器收到的响应有些奇怪(我会说是不正确的) - 服务器不是以401错误代码(“未经身份验证”)响应,而是以302(“重定向”)响应 - 重定向到登录页面。在正常工作的帐户上,服务器会正确地响应401代码,并且工作正常。好像我的帐户没有设置“备用凭据”设置,因此服务器根本不允许基本身份验证。

我刚刚发现了visualstudio.com的问题吗?


当涉及到代理时,我也遇到过类似的问题。你是通过代理连接到仓库的吗? - RabidDog5150
没有,没有代理。连接是直接的。 - user1537794
你是如何安装Git的?安装哪个版本?从哪个shell调用?你是否检查了凭据管理器中是否有过期的用户名/密码? - Giulio Vian
备用凭据的存在并不控制您是否获得401错误 - 您可以直接从代码资源管理器中复制并粘贴URL吗?这会改变行为吗?302重定向将您带到哪里? - Edward Thomson
我遇到了同样的错误,但我的账户在我的台式电脑上可以正常使用,并且另一个账户也一切正常。 - Dživo Jelić
2个回答

3

我刚在我的 VSO 帐户上使用 Git Bash 进行了尝试,效果很好。

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

%40@ 进行 URL 编码后的表示。


我肯定还是做错了什么,因为这对我来说不起作用。 - user1537794

0

我发现如果你将git更新到新版本(我之前用的是1.7.1,更新后变成了1.7.12.4),它会开始提示输入用户名和密码。这样一来,在克隆语句中就不需要提供用户名或密码了。


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