我已经使用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 remote set-url origin https://...

对我没用。然而:

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

以某种方式工作。

其他回答

我也有同样的问题。我这样设置URL:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

我还从配置文件中删除了这个条目:askpass = /bin/echo。

然后“git push”问我的用户名和密码,这一次它成功了。

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

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


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

我得到了同样的错误。我尝试了本页中提到的所有解决方案,但它们都不起作用。最后,我找到了解决方案。

如果您的系统密码最近随时更改,就会出现这种错误。它将尝试从旧密码验证。所以,请遵循以下步骤:

进入控制面板 点击用户帐户 在凭证管理下 进入管理Windows凭证 转到通用凭证 展开Git服务器选项卡 点击Remove from vault

您也可以单击“编辑”,直接修改存储在这里的密码。

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

这是我的解决方案,我认为它适用于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命令后,它将询问您的凭据。使用已经在回购中生成的凭证。