【问题标题】:Why TFS with GIT is not working from command line?为什么带有 GIT 的 TFS 不能从命令行工作?
【发布时间】:2016-10-10 17:06:31
【问题描述】:

我想在 Microsoft Team Foundation Server Git 存储库中使用 git 命令行工具。

但每次我想访问远程存储库时,身份验证都会失败。当然,我使用的是 Active Directory(这是一个 TFS 服务器)。 git repo 管理在 Visual Studio 中完美运行。 (甚至推送、同步、克隆等)。

Cloning into 'blabla'
fatal: Authentication failed for 'http://server:8080/tfs/BlaCollection/_git/blabla/'

我打算使用这种模式,但总是失败。

  • 域\用户名
  • 用户名@domainforest

有人使用命令行工具连接到带有 git 服务器的 TFS 吗? 在我公司我们使用令牌登录Windows,可能是什么原因?

【问题讨论】:

标签: git visual-studio tfs active-directory


【解决方案1】:

Windows 凭据 -> 通用凭据

然后在http://前面添加一个带有“git:”的新项目,即:

git:http://Example.com

将域\用户添加为用户, 和密码

【讨论】:

  • 这为我解决了这个问题。
  • 这在 Windows 10 中确实帮助了我。
  • 只添加了没有前缀的“Example.com”,也可以。
【解决方案2】:

我做了两件事让它发挥作用。试试下面。

  1. 将您的 git 更新到最新版本。
  2. 通过在 Windows 搜索中键入相同的内容打开 Windows 凭据管理器并删除通用凭据中的 git 凭据,如下所示

【讨论】:

  • 这成功了!在 Windows 10 上与 TFS + Git 战斗,这很有效!谢谢!
【解决方案3】:

最后一位同事找到了解决方案,我将在此处发布:

使用命令:

git config --global credential.http://[tfs_server].integrated true

当然,用您自己的 TFS 服务器主机名替换 [tfs_server]

当凭据管理器要求提供凭据时,只需留空并按确定。 (我这种方式将使用 Kerberos 执行身份验证)。

点击此处了解更多信息https://github.com/Microsoft/Git-Credential-Manager-for-Windows#q-i-thought-microsoft-was-maintaining-this-why-does-the-gcm-not-work-as-expected-with-tfs

【讨论】:

  • 我尝试按照您的提示进行操作,但没有成功。每次我开始克隆时都会出现以下错误:克隆到 'BETR_WP%20Route'... 致命:遇到 java.lang.IllegalArgumentException。详细信息:tokenSecretStore 不能为 null 致命:遇到 java.lang.IllegalArgumentException。详细信息:tokenSecretStore 不能为空 'tfsapp1:8080' 的用户名:
  • 谢谢!对我来说没问题。这个很有趣但很有必要! “当凭据管理器要求提供凭据时,只需留空并按确定即可。”
【解决方案4】:

对于我自己,我转到了控制面板 > 凭据管理器 > Windows 凭据。

我尝试只删除前面带有 git: 的通用凭据,但 git 命令仍然不起作用。

在我删除 TFS 服务器的 Windows 凭据后,git 命令开始工作。

【讨论】:

    【解决方案5】:

    不管贵公司用什么方式登录windows,只需要登录TFS的账号即可。您可以在 Windows-控制面板-凭据管理器中找到帐户信息

    PatrickLu-MSFT

    这就是为我做的。我刚刚如上所述打开了 Windows 凭据管理器并编辑了凭据,因为它是如何被困在我以前的密码上的。

    【讨论】:

      【解决方案6】:

      我的解决方案

      打开控制面板 > 凭据管理器 > Windows 凭据。

      在通用凭据下 -> 添加通用凭据

      内网地址:git:https://tfs.[google].com

      管理员:

      密码:

      将 google 替换为您公司的域。输入您的 EID 或凭据以登录 TFS。

      【讨论】:

        【解决方案7】:

        如果您在更改 TFS 密码后遇到此错误,

        转到控制面板\用户帐户\凭据管理器

        在 Windows 凭据下, 修改特定 Internet 或网络地址的密码。

        【讨论】:

          【解决方案8】:

          您最近是否更改了您的 AD 密码?

          • 如果是这样(或者不是大声笑),请转到控制面板 > 用户帐户 > 凭据管理器 > Windows 凭据。
          • 找到以 git:http 开头的条目...
          • 要么删除那个/那些条目,要么编辑新的密码。单击向下箭头,您会看到有关该条目的信息,包括删除/编辑链接

          【讨论】:

            【解决方案9】:

            我之前在 SourceTree 中遇到过这个问题,并使用以下解决方案解决了

            在 Windows 中

            • 打开控制面板 > 凭据管理器 > Windows 凭据。

            或 只需在 Windows 搜索中搜索 Windows Credentials

            在通用凭据下 -> 添加通用凭据

            并填写这些数据

            将 test 替换为您公司的域。输入您的 EID 或凭据以登录 TFS。

            在 SourceTree 中

            • 从工具> 选项> Git> 禁用 SSL 证书验证

            【讨论】:

              【解决方案10】:

              对我来说,是在 config.xml 中设置了代理。 >git config --global --unset http.proxy 让它工作。使用 Kerberos(Windows 身份验证)运行 VM Windows Server 20196 和 TFS2015。

              【讨论】:

                【解决方案11】:
                1. 从 Windows 控制面板中删除您的 git 凭据(正如大家所建议的那样)

                2. 如果 cmd 仍然没有提示您重新输入 git 凭据。例如

                致命:身份验证失败 ....

                您可以尝试卸载您的 git-windows 并选择“无”选项。避免使用凭据帮助器。

                Screenshot page for None Option

                【讨论】:

                  【解决方案12】:

                  尝试直接在命令中使用Authentication--username--password参数如:

                  git tfs clone http://tfs:8080/tfs/DefaultCollection $/Project1 -u=Domain\username -p=xxx
                  

                  -u, --username=VALUE 代表 TFS 用户名
                  -p, --password=VALUE 代表 TFS 密码

                  不管贵公司使用什么方式登录windows,只需要登录TFS的账号即可。您可以在Windows-Control Panel- Credential Manager中找到帐户信息


                  Visual Studio 将凭据存储在与Git Credential Winstore 兼容的 Windows 凭据管理器中。 如果你安装了 Git Credential Winstore,它应该会永久使用 Git 存储库进行身份验证,你也可以试试这个工具。

                  【讨论】:

                  • 没有。我没有使用 Visual Studio Online。并且博客文章的标题错误
                  • 抱歉我的错误,请查看我的更新。你是直接在Git命令中使用-u -p吗?而且无论您的公司使用什么方式登录windows,您只需要登录TFS的账号即可。您可以在Windows-Control Panel- Credential Manager中找到帐户信息
                  • 谢谢你的帮助,我试过你说的但我得到git: 'tfs' is not a git command. See 'git --help'.我的git客户端没有任何tfs选项
                  • 我检查了这个,但这是为了让 TFS 集合显示为本地裸 git repo。我的远程是一个 TFS-with-GIT 存储库,我的本地也是 git,但远程有 Windows 身份验证。那是我的问题。
                  猜你喜欢
                  • 2016-10-09
                  • 1970-01-01
                  • 2015-12-12
                  • 1970-01-01
                  • 2011-05-11
                  • 1970-01-01
                  • 2015-05-20
                  相关资源
                  最近更新 更多