我使用用户名密码来推送我的代码。它工作了几个月,但突然我不能这样做,并得到这个错误:

Username for 'https://github.com': shreyas-jadhav
Password for 'https://shreyas-jadhav@github.com':
remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.

请注意,这个链接没有任何帮助。即使使用生成的令牌也无济于事。

主持人注:这是GitHub计划的一部分,很快将是永久的服务变化


当前回答

你所要做的就是使用一个生成的令牌而不是传统的密码:

使用密码的旧方法:

git clone https://github.com/username/repo.git

Username: your_username
Password: your_password

使用令牌的新方法:

git clone https://github.com/username/repo.git

Username: your_username
Password: your_token

步骤1:从GitHub生成API令牌

阅读本文档创建个人访问令牌:配置双因素身份验证

步骤2:用新生成的令牌替换之前缓存的密码

正如这里回答的,你必须修改你的本地GitHub登录凭证缓存在你的电脑: 从Git中删除凭证

其他回答

这招对我很管用:

生成个人访问令牌(不要忘记复制令牌) 打开您的钥匙链访问(Mac)或凭据管理器(Windows)。 在KeyChain access /Credential Manager中使用新的个人访问令牌更新GitHub密码 最后一步:克隆Git(确保将存储库克隆到正确的目录位置) Git克隆https://github.com/username/repo.git 用户名:your_username 密码:your_token

在我的情况下,它没有提示我的用户名和密码,因为它已经在钥匙串访问更新。

我今天下午遇到了这个问题,并通过将参考文献3中所述的GitHub密码替换为参考文献2中生成的令牌来解决这个问题。

参考文献1:参见API和Git操作的令牌身份验证要求。不再支持该密码。 参考文献2:因此,您应该在本教程中生成一个令牌,并使用它代替您的密码作为凭据。 参考资料3:如果没有提示您输入用户名和密码,则您的凭据可能缓存在您的计算机上。您可以在Keychain中更新凭据,用本教程中描述的令牌替换旧密码。

macOS解决方案

我只是按照下面的说明,这就解决了我的问题。

为GitHub生成一个个人访问令牌。生成令牌的过程 打开您的钥匙串访问。 搜索github.com,双击它。 用最近生成的密钥更新密码。

注意:我不确定这是否适用于其他操作系统用户。

当我试图在Visual Studio Code中向上推时,我收到了这个错误…但是我打开了终端,用用户名和密码就没问题了。

也许你可以试试。

如果你不想以纯文本形式存储你的令牌(通过修改远程回购的URL),你可以这样做:

通过遵循官方链接生成一个新的令牌 通过单击下面的按钮,确保复制了令牌。如果你双击文本并复制它,它会增加一个额外的空格,你会继续得到相同的错误(即使你不再使用你的密码,但令牌)