在TFS 2017中使用Git - 在Visual Studio中运行,但不在命令行

时间:2017-01-04 22:31:22

标签: git visual-studio tfs

我们最近使用Git为我们的项目切换到Team Foundation Server 2017。如果我们通过Web界面或Visual Studio使用它们,我们的TFS就可以运行得很好,但是如果我们尝试使用第三方工具(如Sourcetree,Git Extensions,甚至命令行),我们会得到fatal: Authentication failed for https://[path_to_repo]。 SSH工作正常,但我们想使用HTTPS,因为Visual Studio中尚不支持SSH。

我从我的机器上卸载了git,并按照此链接https://www.visualstudio.com/en-us/docs/git/share-your-code-in-git-cmdline提供的说明进行操作,这只是说安装最新版本的git并确保启用了启用Git凭据管理器(确实如此)。我注意到从我的机器上卸载了git,Visual Studio中的git仍然可以使我相信它正在使用它自己的嵌入式版本的git,就像Sourcetree那样。

我尝试在TFS网站上的IIS中禁用所有形式的身份验证,以便它只接受Windows身份验证,唯一的提供程序是NTLM,并且关闭了扩展保护。

我们希望继续在Visual Studio旁边使用我们的第三方git工具。 Visual Studio确实添加了一些不错的功能,但我们仍然希望在其他工具中执行一些操作。

编辑:我在标题/帖子中输入了错误的版本。我们正在使用2017年的TFS。我道歉,我不知道为什么我犯了这个错误。

3 个答案:

答案 0 :(得分:1)

答案结果是客户端的配置错误。出于某种原因,即使我们在git-install期间选中了启用git凭证管理器的框,但我们的任何配置文件中都没有设置全局变量credential.helper=wincred。设置该变量允许git提示我们并记住我们的凭据。

我不确定它是否相关,但Git Credential Manager独立安装程序在我们的机器上也无法使用。它无法将任何文件复制到我们的git安装目录(C:\ Program Files \ Git)。我必须启用git凭证管理器的日志记录才能看到它失败了,因为它似乎成功了。我将打开git凭证管理器的问题,看看他们是否可以解决这个问题。

编辑:在Git Credential Manager for Windows中针对credential.helper属性打开了一个错误。关于Git的另一个问题也已曝光。

使用GCM的属性为credential.helper=manager而非wincred。但是,manager在Git v 2.11.0中不起作用。 NTLM身份验证似乎是一个已知问题,至少在GCM方面,我建议尝试降级到Git版本2.10.1。一旦我降级,我就可以将上述属性设置为manager并且它正常工作。

答案 1 :(得分:0)

我试图在VS中创建一个新的本地Git仓库,然后使用git命令行将其推送到TFS 2015中的空git团队项目,没有发生错误,您可以将您的步骤与我的步骤进行比较:< / p>

enter image description here

答案 2 :(得分:0)

使用MinGW更新时,Git 2.15.x / 2.16(2018年第一季度)

wincred可能更强大。

commit 601e1e7commit 3c90bdaJakub Bereżański (``)(2017年10月30日) Junio C Hamano -- gitster --于2017年11月9日commit 55b5d92合并)

  

wincred:正确处理空用户名/密码

     

在Windows中保存时,清空(长度为0)用户名和/或密码   凭据管理器,在读取凭证时返回null。

     

此类空凭据的一个用例是使用NTLM身份验证,其中   空用户名和密码指示libcurl使用。进行身份验证   当前登录用户的凭据(单点登录)

     

找到相关凭据时,请将空用户名匹配为null   输出凭据时,请正确处理空值。