我已经使用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期望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。
首先,你可以确保使用正确的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以避免错误消息。