多Microsoft账号场景下Azure DevOps Git推送配置问题咨询
问题根因说明
Visual Studio 内置了微软身份认证提供程序,原生集成Azure AD OAuth 2.0身份流,可直接读取你在VS中已登录的所有微软账号令牌,选择对应账号后即可完成鉴权。原生Git默认未配置适配Azure DevOps的凭证管理组件,只会调用基础的用户名密码输入逻辑,或是匹配到缓存的错误身份凭证,因此无法自动完成合法身份认证。
配置步骤(无需嵌入账号密码,直接走微软身份认证)
1. 配置全局Git凭证管理器(GCM)
Git Credential Manager是微软官方维护的Git凭证组件,原生支持Azure DevOps的交互式微软账号登录,Git for Windows 2.28及以上版本已默认预装,其他操作系统安装对应版本GCM后执行以下配置即可:
# 全局启用GCM作为凭证助手 git config --global credential.helper manager # 配置Azure DevOps优先使用OAuth交互式登录,而非PAT输入 git config --global credential.azureDevOpsFlowPatPreferred false # 开启单仓库独立凭证存储,避免同域名下多账号权限混淆 git config --global credential.useHttpPath true
2. 清除旧的错误缓存凭证
- Windows系统:打开「控制面板→用户账户→凭据管理器→Windows凭据」,删除所有
dev.azure.com相关的历史凭证条目 - Mac系统:打开「钥匙串访问」,搜索
dev.azure.com删除所有相关条目 - Linux系统:在当前使用的桌面密码管理器中,搜索删除
dev.azure.com相关凭证
3. 测试命令行认证
直接使用原生HTTPS地址克隆仓库,无需嵌入账号密码:
git clone https://dev.azure.com/[你的组织名]/[你的项目名]/_git/[你的仓库名]
执行后会自动弹出微软账号登录窗口,选择有仓库权限的对应账号完成登录即可,后续该仓库的拉取、推送操作无需重复认证。如果是之前已经克隆好的仓库,无需修改origin地址,进入仓库目录执行任意需要鉴权的Git操作(比如git push),就会触发新的认证流,选择正确账号即可恢复正常使用。
4. SourceTree配置
- 打开SourceTree→设置→Git选项卡,确认「凭证助手」设置为
使用系统安装的Git及配置,不要启用SourceTree自带的凭证管理 - 进入SourceTree账号设置页,点击添加账号,选择「Azure DevOps」,认证方式选OAuth,点击登录后选择对应微软账号完成授权即可,后续所有仓库操作会自动匹配对应身份。
内容的提问来源于stack exchange,提问作者MrD at KookerellaLtd
相关产品推荐
相关产品推荐

