当我尝试使用git pull时,我在控制台上得到了这个错误:

remote:在2021年8月13日删除了对密码认证的支持。请改用个人访问令牌。 remote:请参阅https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/了解更多信息。 致命:无法访问“…”:请求的URL返回错误:403

这很奇怪,因为我只是在两周前按照文档在GitHub上创建了一个令牌。该代币将于2021年10月26日周二到期。为什么今天这个被删除了?


当前回答

对于Mac

如果你在“GitHub”的钥匙链上没有任何东西,创建一个新的钥匙链项目并添加你的详细信息。从GitHub插入令牌来代替密码。

其他回答

我无法克隆总是给出此错误的项目。我鼓励的解决方案是,在生成token之后,我按照下面所述的操作。

使用个人访问令牌克隆新项目。

对于克隆,您只需要像在第2步中所做的那样修改URL。

克隆存储库的旧方法:

git clone repository_URL folder_name

git clone https://github.com/<user>/<repository> my_project

使用个人访问令牌进行克隆的新方法:

git clone https://<token>@github.com/<user>/<repository> my_project

我分享我的解决方案。

Android Studio Arctic Fox解决方案(Windows 10)

我在Android Studio Arctic Fox(最新版本)中使用个人访问令牌进行了身份验证,但我仍然在2021年8月14日得到了这个错误:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

我在github.com上生成了一个新的访问令牌,从Android Studio中删除了我的GitHub帐户,并再次使用新的访问令牌添加帐户。但是,它仍然显示出同样的错误。

我在Stack Overflow上阅读了其他解决方案,下载了GitHub CLI,并在Windows命令提示符中成功添加了我的GitHub帐户和访问令牌,并尝试从Android Studio再次推送存储库,同样失败。

然后,在本文之后,我在命令行中执行了以下操作:

cd <project-directory>
git remote set-url origin https://<TOKEN>@github.com/<user_name>/<repo_name>.git

我从Android Studio再次推送,它终于工作了!

对于那些使用Sourcetree和现有存储库的用户,您必须像这样更新存储库URL https:// < your_token > @github.com/username/repo.git

这是从这个答案中提取出来的。

Windows用户的快速解决方案

打开凭证管理器,删除已经保存的Git凭证:https://github.com。

该步骤完成后,在终端中再次执行拉/推命令。GitHub会自动要求使用默认浏览器登录(请确保您在默认浏览器中使用GitHub登录)。

登录成功后,我们得到这样的消息:

要获得更多相关的帮助,你也可以观看这个视频。

对于macOS用户,只需简单地遵循以下步骤:

(我从Kartik Tyagi那里截取了这部分,但我补充了一个被遗漏的关键部分。)

转到此链接:https://github.com/settings/tokens(配置文件->设置->开发人员设置->个人访问令牌)。(不要去仓库设置;这是你的个人资料设置) 生成一个新的令牌并将其复制粘贴到某个安全的地方。 现在在你的Mac电脑上搜索一个名为Keychain Access的应用程序。 搜索github.com。

如果不存在:

5.1. 点击“创建一个新的钥匙链项目”按钮(记事本笔图标)。

Keychain项目名称:https://github.com

帐户名:https://github.com(必须这样保存。不要添加www。它将无法正常工作)

密码:粘贴您生成的令牌

如果存在:

5.2. 如果有多个GitHub登录,然后选择Kind: Internet password,双击它。

点击显示密码,然后输入你的Mac密码并按enter键。 密码现在应该可见了。现在,只需粘贴在第2步中生成的令牌,然后单击Save changes。

应该就是这样了。享受吧!