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

当前回答

我刚刚为我的Github帐户启用了双因素身份验证,所以我禁用了双因素身份验证,我可以用我的UID和PWD登录

其他回答

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

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

我认为由于某种原因,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。

如果你在你的GitHub帐户中启用了双因素身份验证,你 将无法使用您的帐户密码通过HTTPS推送。而不是 您需要生成一个个人访问令牌。这可以在 GitHub帐户的应用程序设置。使用此令牌作为您的 密码应该允许您通过HTTPS推送到远程存储库。 像往常一样使用你的用户名。

创建个人访问令牌

如果存储库设置为HTTPS,您可能还需要更新存储库的起源。切换到SSH:

git remote -v
git remote set-url origin git@github.com:USERNAME/REPONAME.git

同样的错误(Windows, Git Bash命令行)。使用https应该提示登录凭证,但错误:

$ git pull origin master
fatal: Authentication failed for 'https://github.com/frmbelz/my_git_project.git'
$ git config -l
...
credential.helper=manager
...

$ git config --global --unset credential.helper
$ git config --system --unset credential.helper

Git拉现在提示用户名/密码提示。

启用凭据助手解决了我的问题。