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

创建个人访问令牌

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

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

其他回答

快速的GUI方法是:

首先通过create app access token生成一个访问令牌。 然后进入sourceTree的设置(放在Source树的关闭按钮下) 将出现一个名为“Repository Settings”的提示。 使用https://USER_NAME:ACCESS_TOKEN@bitbucket.org/REPO_NAME/PROJECT_NAME.git添加/编辑您的存储库路径

或为github帐户

https://username:access-token@github.com/username/repo.git

这里要提到的唯一变化是将上述共享创建应用程序访问令牌链接生成的附加accessToken添加到现有路径url中。

在Windows系统上,这个功能对我很有效,它还能记住我的证书:

运行Git Bash 指向存储库目录 执行git config——global credential命令。辅助wincred

我的解决方案是:

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

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

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

从你的.config文件更改:

url = http://www.github.com/###user###/Random-Python-Tests

To:

url = http://###user###@github.com/###user###/Random-Python-Tests

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