我已经使用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 = ############

当前回答

我的解决方案是:

C:\Users\USERNAME\AppData\Local\Atlassian\SourceTree的访问权限 找到文件passwd 右键单击该文件,用记事本打开 你会看到一个用户名和密码列表,如下所示:

username@dev.azure.com AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAMUOX3Q56PEuXEBSDFAFAASEH...

找到您输入错误的用户名和密码,并删除它 保存文件,并关闭它 SourceTree将在下一次推送或获取时再次询问您的用户名和密码

其他回答

在Android Studio Canary 3.1+版本中,如果你正在使用Android Studio Git工具,那么你可以使用以下工具:

点击Android Studio 点击Preferences… 进入版本控制→GitHub 此处将验证类型更改为密码 此步骤将要求您输入登录名和密码。登录时输入GitHub用户名,密码为GitHub密码。 单击Test按钮。

如果连接成功,那么就完成了,可以使用Android Studio GitHub GUI客户端。

我不确定我做了什么得到这个错误,但做:

git remote set-url origin https://...

对我没用。然而:

git remote set-url origin git@bitbucket.org:user/repo

以某种方式工作。

我认为由于某种原因,GitHub期望URL没有子域www。当我使用(例如)

git remote set-url origin https://www.github.com/name/repo.git

它给出了以下信息:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

然而,如果我使用

git remote set-url origin https://github.com/name/repo.git

它工作得非常好。这对我来说没什么意义…但我想记得不要把www放在GitHub存储库的远程URL中。

另外请注意,GitHub存储库网页上提供的克隆url不包括www。

给定的解决方案:使用个人访问令牌是绕过此问题的一种方法。我没有启用双重身份验证,但每当我登录到一台新PC时,我都会收到电子邮件验证码来验证PC。

解决方案: 你可以在浏览器上登录到GitHub并验证你的身份,这将让GitHub知道信任这台PC。然后,使用bash登录,这一次您的登录应该像往常一样工作,因为现在您被列入了白名单。


注意:如果你有任何现有的GitHub帐户,想要切换,那么,在凭证管理器> Windows凭证(通用凭证部分)中删除它。这样做将允许您在进行另一个git操作时登录。

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

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

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