我已经使用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.com上更改了密码,我的shell身份验证的钥匙链从未更新到新密码。

从我的钥匙链中删除所有Git,然后重新运行Git请求帮助解决了这个问题,再次提示我输入新密码。

其他回答

这是我的解决方案,我认为它适用于Azure, Github或Git。如果您的身份验证失败可能是由于4个可能的原因—您启用了2FA,您更改了密码,您更改了用户名或回购密码是动态的)—

无论发生了什么,你都应该遵循以下四个步骤:

去任何你的回购位于点击“克隆”按钮。 应该有一个HTTPS的方式,下面点击“生成git凭证”按钮。这必须给你一个新密码。(Azure回购图)

在cmd中进入你的repo并输入: git push -u origin your-Branch-Name (如果需要)如果没有定义源url路由,只需输入下面的命令,然后再次执行步骤3: Git远程添加origin https://my-git-url git push命令后,它将询问您的凭据。使用已经在回购中生成的凭证。

如果您在Windows上,并试图推送到具有域用户作为存储库用户(TFS)的Windows服务器,请尝试使用Internet Explorer进入TFS URL(即http:\\ TFS)。输入域帐户凭据并显示页面。

注意:只能使用ie浏览器!其他浏览器不会更改您的系统凭据。

现在转到Git Bash,更改存储库的远程用户,如下所示:

git config user.name "domainName\userName"

和完成。现在你可以推了!

我也遇到了错误(这就是为什么我被降落在这里),但没有一个建议对我有用。这是我第一次尝试将本地Git存储库部署到Azure。

当我得到这个错误,我重置了我的凭证(通过点击链接在Azure)几次尝试后。问题是,在这一点上,它告诉我我的用户名已经被占用,所以我也把我的用户名改为另一个。

最后,我手动删除了本地驱动器上的.git文件夹,并毫无问题地重新部署了它。

我得到以下错误时,试图推动到github远程

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方案 github账户上的SSH密钥丢失

从~/复制本地公共ssh密钥。ssh目录 粘贴到Github >设置> SSH和GPG密钥>新的SSH密钥 试试ssh -T git@github.com 这应该会输出 嗨xxxxx !您已成功验证,但GitHub不提供shell 访问。

同样的错误(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拉现在提示用户名/密码提示。