【问题标题】:Git Credential Manager keeps generating PATs for Azure DevopsGit Credential Manager 不断为 Azure Devops 生成 PAT
【发布时间】:2019-01-23 10:00:17
【问题描述】:

每当我拉取或推送时,我都会被要求从我的组织中选择一个帐户,其中只有一个帐户选项(另一个选项是“登录到不同的帐户”)我不会被要求重新输入我的密码在选择此帐户之后。然后我收到一条通知,告诉我 git-credential-manager 已在 Azure DevOps 上为我的组织生成了个人访问令牌。它现在生成了大约 90 个这些令牌并且没有一个已过期。我已经更新了所有内容到最新版本,重新验证一切,仍然没有运气。

这只是最近几周才开始发生的。有人知道下一步该尝试什么吗?

【问题讨论】:

  • 您的凭据管理器中的 URL 是什么样的?您正在克隆的 URL 是什么样的?最后,当您通过 Web 访问 Azure DevOps 时,URL 是什么样的?我想知道在 account.visualstudio.com 变成 dev.azure.com/account 之后,如果您正在存储一个 URL 方案的凭据但克隆另一个(因此如果 Git 正在寻找错误 URL 的凭据但没有找到它们)。
  • @EdwardThomson 我所有的 URL 都是 dev.azure.com 的。在他们从 VSTS 切换到 DevOps 之前,我没有在 DevOps 上托管过任何项目。
  • 有趣。与一些工程师交谈,看起来有一些可能的事情可能会导致这种情况。为避免在这个小聊天框中出现太多来回,我将发布一个答案,我们可以对其进行迭代以收集所有可能性和解决方案。

标签: git azure azure-devops devops


【解决方案1】:

可能的问题是你有一个旧版本的 Git Credential Manager。

Azure DevOps 最近更改了其 URL 方案(来自 Visual Studio Team Services 方案)。 Git Credential Manager 需要知道您要连接的托管服务提供商的类型,因为 GitHub 的协商不同于 Bitbucket 的协商,也不同于 Azure Repos 的协商。它通过查看 URL 信息来做到这一点;此新 URL 方案仅在较新的 Git 凭据管理器版本中受支持。 GCM 1.18 中添加了此支持。

确保您在命令行上运行的是最新版本的 Git for Windows。你应该可以正确git fetchgit push

同样,更新到最新版本的 Visual Studio 2017。VS 2017 包括其自己的 Git for Windows 版本和 Git Credential Manager。

还有一些其他可能的问题:

Git 凭据管理器将这些存储在错误用户的凭据存储中。例如,如果您正在运行提升的进程,则可能会发生这种情况。 (请不要将 git 作为提升的进程运行。)

如果这些都不是问题,则可能是 GCM 中存在我们需要解决的错误。

【讨论】:

  • 我正在运行 git version 2.20.1。 git 凭证管理器version 1.18.4。我没有使用 git 命令行,而是通过 Visual Studio Team Explorer 使用它。 Visual Studio 以管理员身份和单独的用户帐户运行(这是项目所需的访问权限所必需的)
  • 可能是海拔,但是你用的是什么版本的VS?它包括自己的 GCM。 (假设您运行的是 VS 2017 Enterprise,您可以通过运行 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git" credential-manager version 找到版本)。
  • 那个文件的版本是2.14.4
  • 谢谢 - 看起来即使是最新版本的 VS 2017 也没有最新的 GCM。
  • 我已经更新了我的答案,包括一种手动指定应该正常工作的版本的方法。
猜你喜欢
  • 1970-01-01
  • 2022-07-06
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多