Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Git与TFS 2017结合使用-适用于Visual studio,但不适用于命令行 我们最近使用Git为我们的项目切换到Team Foundation Server 2017。如果我们通过web界面或Visual Studio使用TFS,那么TFS工作得就足够好了,但是如果我们尝试使用第三方工具,例如Sourcetree、Git Extensions,甚至是命令行,我们会得到一个致命错误:https://[path\u to\u repo]的身份验证失败。SSH工作正常,但我们希望使用HTTPS,因为VisualStudio中还不支持SSH_Git_Visual Studio_Tfs - Fatal编程技术网

将Git与TFS 2017结合使用-适用于Visual studio,但不适用于命令行 我们最近使用Git为我们的项目切换到Team Foundation Server 2017。如果我们通过web界面或Visual Studio使用TFS,那么TFS工作得就足够好了,但是如果我们尝试使用第三方工具,例如Sourcetree、Git Extensions,甚至是命令行,我们会得到一个致命错误:https://[path\u to\u repo]的身份验证失败。SSH工作正常,但我们希望使用HTTPS,因为VisualStudio中还不支持SSH

将Git与TFS 2017结合使用-适用于Visual studio,但不适用于命令行 我们最近使用Git为我们的项目切换到Team Foundation Server 2017。如果我们通过web界面或Visual Studio使用TFS,那么TFS工作得就足够好了,但是如果我们尝试使用第三方工具,例如Sourcetree、Git Extensions,甚至是命令行,我们会得到一个致命错误:https://[path\u to\u repo]的身份验证失败。SSH工作正常,但我们希望使用HTTPS,因为VisualStudio中还不支持SSH,git,visual-studio,tfs,Git,Visual Studio,Tfs,我已经从我的机器上卸载了git,并按照此链接中提供的说明进行了操作,其中几乎只说安装最新版本的git,并确保启用了Enable git Credential Manager(启用git Credential Manager)。我注意到,从我的机器上卸载git后,VisualStudio中的git仍然可以工作,这让我相信它正在使用自己的嵌入式git版本,就像Sourcetree一样 我已尝试在我们的TFS网站上禁用IIS中的所有形式的身份验证,以便它只接受Windows身份验证,并且唯一的提供程序

我已经从我的机器上卸载了git,并按照此链接中提供的说明进行了操作,其中几乎只说安装最新版本的git,并确保启用了Enable git Credential Manager(启用git Credential Manager)。我注意到,从我的机器上卸载git后,VisualStudio中的git仍然可以工作,这让我相信它正在使用自己的嵌入式git版本,就像Sourcetree一样

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

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


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

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


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

我不确定它是否相关,但Git Credential Manager独立安装程序在我们的机器上也会失败。它无法将任何文件复制到我们的git安装目录(C:\Program files\git)。我必须启用git credential manager的日志记录,以查看它是否失败,因为它似乎成功了。我将向git credential manager提出一个问题,看看他们是否能够解决这个问题

编辑:在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
,并且工作正常

wincred在Git 2.15.x/2.16(2018年第1季度)和MinGW更新的情况下可能更加健壮

参见(2017年10月30日)作者。
(于2017年11月9日合并)

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

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

查找相关凭据时,将空用户名设为空。
输出凭据时,正确处理空值


因为您使用的是HTTPS,所以是否为TFS 2015配置SSL?是的。我们有自己的SSL证书,在我将证书添加到git安装文件夹中的ca bundles文件之前,我们最初确实存在SSL错误。您的TFS是否设置为使用NTLM身份验证?您不应该干扰IIS中的设置,因为这将破坏TFS。如果您有,我建议您卸载并重新安装TFS 2017。这不会影响您的数据。