我已经使用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帐户的密码。 你可以使用-u选项来尝试git的push line:

git push -u origin branch_name_that_you_want_to_push

执行上述命令后,它将要求输入密码。提供更新后的密码。

其他回答

我在Windows上也遇到了同样的问题。大多数时候,由于使用多个Git帐户,我通常会遇到这个问题。如果您使用的是Windows操作系统,请以管理员身份打开终端并尝试再次运行这些命令。请确保您具有管理员权限。

如果问题存在,请提供正确的凭据:

如果你使用的是Android Studio 2.1测试版,那么这就是一个bug。升级到beta 2 (3 MB更新文件)。这对我很管用。

我尝试了令牌验证方法,让它工作~3次,浪费了大约2个小时的时间。出于某种原因,它在我们公司不太适用。

我的解决方案是将身份验证方法从HTTPS改为SSH。这是一个Github指南(https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)。

创建SSH密钥后,请记住更改SSH地址来源:

git remote add origin git@github.com:user/repo.git

通过这种方式,我在GIT GUI和GIT bash中解决了访问被拒绝的问题。

这个SSH密钥复制粘贴到GitHub访问令牌中。

对我来说一切都很好,我也尝试了Windows凭据管理器,但问题也没有解决。 然后突然,我从防火墙弹出,这是幕后的罪魁祸首。在我手动点击允许后,我可以获取或推送到GitHub。

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

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

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