当我尝试使用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日周二到期。为什么今天这个被删除了?


当前回答

一个命令简单的解决方案来解决它

如果你的计算机没有SSH密钥添加到GitHub帐户,我会在回答的最后添加信息让你这样做。你应该先做。

推送失败后,执行以下操作:

git remote set-url origin git@github.com:{user_id}/{project_name}.git

再推一下。这样就有用了。

让我在下面展示我的案例。 (我会指导你如何做你的案子。)

首先,当我添加、提交和推送时,我遇到了这个问题:

然后,我当前的Git日志如下。

最后,这是我解决问题的方法。

就我而言,

{project_name} <-> open-idea-pool . {project_name} <-> open-idea-pool . {user_id} <-> milochen0418是 {branch_name} <-> master . {branch_name

(你的branch_name可能是main,但不是master)

当我推失败时,我唯一需要的是这一个命令:

git remote set-url origin git@github.com:{user_id}/{project_name}.git

然后我再按一下:

git push -u origin {branch_name}

以我的案例为例,

git remote set-url origin git@github.com:milochen0418/open-idea-pool.git
git push -u origin master

它的工作原理。

-- 顺便说一下,这是创建一个SSH密钥到GitHub帐户的过程。

您可以参考这两个链接来进行操作。这里的信息支持Mac、Windows和Linux。

关于添加SSH密钥到GitHub的问题 添加一个新的SSH密钥到您的GitHub帐户

此外,如果你想克隆一个新项目,你可以执行以下命令:

git clone git@github.com:{user_id}/{project_name}.git

其他回答

我是一个Sourcetree用户,并通过“刷新OAuth令牌”在菜单工具→选项→身份验证→选择GitHub帐户来修复它。

如果你从未为你的GitHub帐户添加身份验证,你可以参考如何连接GitHub与SourceTree(方法1:通过OAuth连接远程帐户)。

如果你使用的是macOS,只需简单地遵循以下步骤:

转到此链接:https://github.com/settings/tokens(配置文件->设置->开发人员设置->个人访问令牌)。(不要去仓库设置;这是你的个人资料设置) 生成一个新的令牌并将其复制粘贴到某个安全的地方。 现在在你的Mac电脑上搜索一个名为Keychain Access的应用程序。 搜索github.com(如果有多个GitHub登录,然后选择Kind: Internet password),双击它。 点击显示密码,然后输入你的Mac密码并按enter键。 密码现在应该可见了。现在,只需粘贴在第2步中生成的令牌,然后单击Save changes。

就是这样。享受吧!

如果你使用的是Windows:

按照上面的步骤1和2执行。 在Windows操作系统中搜索一个名为Credential Manager→Windows Credentials的应用程序。 搜索github.com,用你在GitHub上生成的令牌编辑密码。 现在享受!

开发者破解(短代码):

git remote set-url origin https://<githubtoken>@github.com/<username>/<repositoryname>.git

而克隆:

git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git

它可以在任何操作系统(Mac, Windows或Linux)上工作。

缺点:您必须记住或应该需要对本地的每个存储库进行操作。所以我希望每个人都使用上面提到的步骤。

注意:

对于那些没有这个条目的人:它可以。一种方法是——克隆一个项目。然后它会询问你的用户名和密码。而不是密码给它的令牌,然后进入将作出。

对于那些按照指示生成个人访问令牌,但忘记选择合适范围的人:

请务必记住选择合适的范围,如存储库。无论您使用以前的密码还是没有合适范围的新令牌,都不会得到不同的错误提示。

Mac用户——一个简单的解决方案。

在GitHub中设置个人访问令牌:

设置→开发者设置→个人访问令牌

打开钥匙串→输入“GitHub”

将密码更改为个人访问令牌。

尝试提交/推动。

选择“始终允许”,业务照常进行。

对于Mac

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