使用 Visual Studio 2017 或 2019 和 AAD 帐户从 MSA 支持的 Azure DevOps 克隆存储库
Cloning repository from MSA backed Azure DevOps using Visual Studio 2017 or 2019 and AAD account
Microsoft 引入了邀请 AAD 用户加入 MSA 支持的 Azure DevOps 帐户的选项。这对于正在将帐户从 "unmanaged" 过渡到 "managed" 的公司来说非常有用,首先是将帐户所有权转让给 AAD 用户,然后以较慢的方法修复用户和许可混乱。
但是,当我尝试使用 Visual Studio 2017 或 2019 克隆存储库时,我收到一条错误消息:
Git failed with a fatal error. Authentication failed for: {remote-url}.
或者,根据您拥有的 Git 凭据管理器的版本:
error: cannot spawn askpass: No such file or directory
fatal: could not read Username for '{remote-url}': terminal prompts disabled`
从命令行克隆时没有问题,之后,Visual Studio 也可以使用生成的 git 存储库。
事实证明,Visual Studio 2017(自 15.9.7 起)和 2019(预览版 3)仍然附带 Git 凭据管理器的 1.17 版,并且它们不使用全局安装版本可用时。
您可以在以下位置检查您是否有 "old" 版本:
C:\Program Files (x86)\Microsoft Visual Studio17\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio19\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
如果你有正确的版本,你应该看到:
修复
This is officially unsupported and can have unwanted side-effects. But it worked for me ;).
要修复 Visual Studio,您可以使用 Git 凭据管理器的最新版本 zip 中的文件覆盖上述位置的二进制文件:
每次升级到较新的 update/preview 时,您都需要重新应用这些文件,直到 Microsoft 决定将最新版本作为 Visual Studio 的一部分发布,很遗憾。 Visual Studio 安装程序会顽固地用 1.17 版本覆盖它。
更新
The latest version os Visual Studio 2017 (15.9.10+) now contains version 1.18.4 of the Git Credential Manager and should solve many of the issues that were caused by the older versions. Should you need a more recent version of the GCMfW, the same trick should work for newer versions too.
After chatting with Chad Boles (who maintains Team Explorer in Visual Studio), we worked out another option. This is preferred over overwriting the files in the Visual Studio installation as this may break future updates and can cause hard to debug issues in the future.
- Install the latest GCMW-1.xx.xx.exe in your system and/or update to the latest version of Git for Windows 应该包括 GCM。
更新您的全局 git 配置以指向 Git 凭据管理器的特定实现:
c:\>git config --global --edit
将 [credential]
部分更新为:
[credential]
helper = C:\\Program\ Files\\Git\\mingw64\\libexec\\git-core\\git-credential-manager.exe
确保路径指向可以在您的系统上找到最新的 Git 凭据管理器的位置。请注意使路径在全局 git 配置中工作所需的所有转义。
Microsoft 引入了邀请 AAD 用户加入 MSA 支持的 Azure DevOps 帐户的选项。这对于正在将帐户从 "unmanaged" 过渡到 "managed" 的公司来说非常有用,首先是将帐户所有权转让给 AAD 用户,然后以较慢的方法修复用户和许可混乱。
但是,当我尝试使用 Visual Studio 2017 或 2019 克隆存储库时,我收到一条错误消息:
Git failed with a fatal error. Authentication failed for: {remote-url}.
或者,根据您拥有的 Git 凭据管理器的版本:
error: cannot spawn askpass: No such file or directory fatal: could not read Username for '{remote-url}': terminal prompts disabled`
从命令行克隆时没有问题,之后,Visual Studio 也可以使用生成的 git 存储库。
事实证明,Visual Studio 2017(自 15.9.7 起)和 2019(预览版 3)仍然附带 Git 凭据管理器的 1.17 版,并且它们不使用全局安装版本可用时。
您可以在以下位置检查您是否有 "old" 版本:
C:\Program Files (x86)\Microsoft Visual Studio17\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio19\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
如果你有正确的版本,你应该看到:
修复
This is officially unsupported and can have unwanted side-effects. But it worked for me ;).
要修复 Visual Studio,您可以使用 Git 凭据管理器的最新版本 zip 中的文件覆盖上述位置的二进制文件:
每次升级到较新的 update/preview 时,您都需要重新应用这些文件,直到 Microsoft 决定将最新版本作为 Visual Studio 的一部分发布,很遗憾。 Visual Studio 安装程序会顽固地用 1.17 版本覆盖它。
更新
The latest version os Visual Studio 2017 (15.9.10+) now contains version 1.18.4 of the Git Credential Manager and should solve many of the issues that were caused by the older versions. Should you need a more recent version of the GCMfW, the same trick should work for newer versions too.
After chatting with Chad Boles (who maintains Team Explorer in Visual Studio), we worked out another option. This is preferred over overwriting the files in the Visual Studio installation as this may break future updates and can cause hard to debug issues in the future.
- Install the latest GCMW-1.xx.xx.exe in your system and/or update to the latest version of Git for Windows 应该包括 GCM。
更新您的全局 git 配置以指向 Git 凭据管理器的特定实现:
c:\>git config --global --edit
将
[credential]
部分更新为:[credential] helper = C:\\Program\ Files\\Git\\mingw64\\libexec\\git-core\\git-credential-manager.exe
确保路径指向可以在您的系统上找到最新的 Git 凭据管理器的位置。请注意使路径在全局 git 配置中工作所需的所有转义。