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

当前回答

我昨天开始在Ubuntu 20.04的Visual Studio Code中遇到这个问题。

我没有对我的GitHub凭证进行任何更改,也没有在项目中更改任何内容,但我运行任何git命令来与我的远程分支进行通信,例如:

git pull origin dev

我得到的错误如下:

remote:未找到存储库。 致命:“https://github.com/MyUsername/my-project.git/”认证失败

以下是对我有效的方法:

我尝试重新克隆项目,然后运行git pull命令,但它不起作用。

git clone https://my-git-url

我尝试使用以下命令再次设置我的凭据,但仍然没有运气:

git config --global user.email "email@example.com"
git config --global user.name "John King"

我尝试删除远程存储库,并使用以下命令重新添加它,但仍然没有运气:

git remote remove origin
git remote add origin https://my-git-url

最后,我决定尝试使用我默认的Ubuntu终端,它工作得很好。我最大的猜测是,这是Visual Studio Code在几个小时前的最后一次更新中的一个错误(请参阅截图,它显示发布是在我遇到这个问题的同一天完成的)。我的意思是我使用snap设置Visual Studio Code,所以它可能已经在后台更新了几个小时。

希望他们能解决这个问题,git远程操作将再次恢复正常。

其他回答

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

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

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

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

在你尝试以上一切之前,尝试git再推一次,是的,它对我有用。

确保您有推送的写权限。

read ***write*** admin 

首先,你可以确保使用正确的URL:

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

然后,如果它之前工作,如果它没有要求您的用户名,这一定是因为您已经将您的凭据(登录名/密码)存储在$HOME/.netrc文件中,正如这里所解释的那样。您可以再次检查这些设置,并确保您的代理(如果有的话)没有更改。

检查git配置——global credential.helper的输出。 并确保凭证是你的GitHub用户帐户,和一个PAT(个人访问令牌)。

您可以使用Git凭据助手更新您的凭据,如下所示。


如果这仍然不工作,你可以切换到SSH URL:

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

但这意味着您已经在帐户设置中发布了SSH公钥。


有关Visual Studio Code的具体信息,请参见“git push:缺少或无效凭证”。致命:'https://github.com/username/repo.git'认证失败"

您可以取消选择设置git。terminalAuthentication以避免错误消息。