从今天开始,在Azure-DevOps的存储库中尝试使用git命令时出现错误。这些存储库位于DevOps上的一个项目中,我可以使用同一帐户访问该项目,并且没有任何迹象表明最近对其进行了更改。我可以采取的步骤来复制它:
错误:
fatal: Authentication failed for `<link to repository>`
到目前为止我已经尝试过的事情:
Visual Studio
.IdentityService
文件夹GIT
GIT For Windows
中卸下和安装Visual Studio Installer
%LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache
%LOCALAPPDATA%\Microsoft\Team Foundation\8.0\Cache
GIT
移除VS
和Credential Manager
键当前正在运行:
编辑:
我尝试将Visual Studio Code
与扩展名Azure Repos 1.149.2
一起使用,并得到相同的错误。它使我产生一个Microsoft页面,该页面用于输入我授予的设备登录代码,但是使用git
命令会给我同样的错误消息。
我还从Azure DevOps环境中删除了个人资料,并重新添加了个人资料,但没有成功。
答案 0 :(得分:3)
尝试检查git config credential.helper的值。
如果看到“ manager” open the Windows Credentials Manager,并输入PAT(创建的个人访问令牌)作为密码(在保持常规登录名的同时,将其与远程URL关联)
然后重试,看看问题是否仍然存在。
答案 1 :(得分:2)
要强制Git凭证管理器停止干扰,可以将以下内容添加到全局git配置中:
[credential]
helper =
这实际上会关闭所有凭据管理器。然后,您可以在Azure DevOps中配置一组Git凭据或个人访问令牌,并使用其直接连接。
它不能解释您遇到的问题。鉴于您的帐户似乎是机器绑定帐户,而AAD帐户似乎可以发挥作用。其中包括AAD Home-Realm Discovery和单一登录以及Azure Active Directory Guest帐户。
另一个可能的问题是Windows凭据存储,该存储具有多个存储Azure DevOps和Git凭据的位置。最后,用于登录Visual Studio 2019以检索其许可证的帐户可能正在播放。
有了您提供的信息,我们几乎可以帮助您解决问题而又不费吹灰之力。如果您有空的话,我几乎建议您提出Azure支持请求,以便工程师与您一起查看。
可选运行
git-credential-manager.exe erase
并传递以下数据
protocol=https
host=dev.azure.com
path=/jessehouwing/vsts-extensions/_git/vsts-github-tasks
{newline}
告诉git删除为您的帐户存储的凭据
答案 2 :(得分:2)
在我的特定情况下,在与Microsoft多次来回邮件之后,事实证明我的两个帐户以某种方式开始彼此冲突,从而导致奇怪的错误。一个很好的例子是,在DevOps中对Wiki进行更改将在提交试用中显示与我登录的帐户不同的帐户。
最终,微软设法对其进行了修复,此后我再没有任何问题。
答案 3 :(得分:1)
我在VS2019中有一个类似的问题,我移动了笔记本电脑,尽管我使用凭据管理器删除和更改了凭据,但它拒绝进行身份验证。我已链接到Assembla中的存储库,并且在存储库设置下的团队资源管理器窗口中,我注意到有一个复选框可以覆盖全局用户名和电子邮件设置,这与我的Assembla登录名不同。
答案 4 :(得分:0)
我遇到了同样的情况-一切都在VS 2017中有效,但2019无法正常工作。我发现this article,建议我更新Git Credential Manager for Windows。我的安装版本(在C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager.exe
上已使用3年。下载,安装,问题对我来说消失了。
答案 5 :(得分:0)
同样的错误(Windows、Git Bash 命令行、Visual Studio、bitbucket)。使用 https(不是 ssh),它应该提示输入登录凭据,而是出现错误(可能是因为我的 bitbucket 凭据已更改):
$ git pull origin master
fatal: Authentication failed for 'https://bitbucket.../my_git_project.git'
$ git config -l
...
credential.helper=manager
...
$ git config --global --unset credential.helper
$ git config --system --unset credential.helper
git pull
现在提示输入用户名/密码提示。