我已经使用GitHub有一段时间了,git添加、git提交和git推送都没问题,到目前为止还没有任何问题。突然我出现了一个错误

fatal:认证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后我使用git add将文件添加到提交日志中,当我做git提交时,它工作得很好。最后,git push请求用户名和密码。我输入正确,每次我这样做,它都会显示相同的错误。

这个问题的原因是什么,我该如何解决它?

.git/config的内容如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

当前回答

我遇到过

git fetch

fatal: Authentication failed for 'http://...."

在我的Windows密码过期并被更改之后。使用Windows凭据管理器多次获取、重新启动甚至重新安装Git都没有帮助。

令人惊讶的是,正确答案在评论中,而不是在答案中(其中一些真的很奇怪!)

你需要进入控制面板→凭据管理器→Windows凭据并更新git的密码:http://your_repository_address

其他回答

这个问题在GitHub引入双因素身份验证之前就已经提出了,然而,自从GitHub引入2FA以来,许多人都遇到了这个错误。

每次你尝试推送时,GitHub都会要求验证,如果你想避免重复提示,你应该使用GitHub -cli,它非常轻量级,你可以安装apt, yum, dnf和pacman。

安装github-cli后,

输入以下命令

gh auth login

选择要验证的帐户类型 选择HTTPS或SSH(根据需要) 使用web浏览器登录或根据您的轻松程度使用访问令牌进行身份验证。

访问令牌可以从GitHub > Settings > Developer-settings >生成访问令牌,复制令牌并粘贴到终端,这是一次性的代码,所以在终端上进行身份验证之前,请确保您不会丢失代码

如果这是有帮助的,因为这个问题现在是git的http身份验证问题的一个热门:Windows凭据管理器已经正确地存储了我的密码,并且由于我使用git LFS,我配置了一个http URL而不是通常的ssh://。

我的问题是,我的公司密码策略强制更改帐户密码,但我从未更新我存储的凭据(因为我总是使用ssh密钥)。

简单地在Wincred GUI中直接更新密码就可以了:只需查找git:https://<your-url>条目。

确保您有推送的写权限。

read ***write*** admin 

我也有同样的问题。重新启动我的系统后,它工作了。

如果你在你的GitHub帐户上启用了双重身份验证,然后登录到你的GitHub帐户,然后转到

新的个人访问令牌

若要生成新的访问令牌,请复制该令牌,并将其作为密码粘贴到终端中进行身份验证。