我使用用户名密码来推送我的代码。它工作了几个月,但突然我不能这样做,并得到这个错误:
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计划的一部分,很快将是永久的服务变化
适用于macOS, Windows和Linux
解决方案1
删除现有的存储库(如果当前有任何更改,请对其进行备份):
Mv my-repo my-repo.backup
创建SSH密钥并将其添加到GitHub(参见GitHub文档)
为SSH克隆存储库:git克隆git@github.com:group/repo-name.git
方案二(推荐方案)
Git远程删除原点
您必须添加一个访问令牌(请参阅GitHub文档以生成令牌)
Git远程添加origin https://<token>@<git_url>.git
Git拉https://<token>@<git_url>.git
使用Visual Studio代码
删除你的GitHub访问:
git credential-osxkeychain erase
⏎ host=github.com
⏎ protocol=https
不是推就是拉
它将提示您一个模态对话框。单击“允许”并按照流程操作。
之前接受的Kusal Shrestha的答案可以完成这项工作,但它并不安全,因为我们将令牌存储在纯文本中。
在我看来,将它存储在钥匙链中是更好的方法。
对于Visual Studio Code,请阅读crg的回答。
Windows:
你可以试试下面的@Venryx评论,但我还没有测试过。
Mac:
我现在才面对这个问题
按照建议,我按照这个URL进入开发设置并生成了一个令牌。
然后我进入我的Mac的钥匙链访问:
我删除了(所有)行的GitHub
现在我去终端输入了虚拟代码
git push
终端要求我输入我的邮箱和密码。
我输入了我的电子邮件,对于密码,我输入了我之前生成的令牌。
然后它又开始工作了。
首先从帖子:API和Git操作的令牌认证要求,它说
2021年年中-所有经过身份验证的Git操作都需要个人访问或OAuth令牌。
所以你需要使用个人访问令牌(PAT)来推送:
1获取您的个人访问令牌
在这里登录以访问存储库并添加一个新的个人访问令牌:个人访问令牌。生成一个并保持令牌的安全(离开后无法显示它)。
(在Android Studio中,您需要获得“repo”,“gist”和“read:org”的许可)
2使用个人访问令牌进行推送
在你得到令牌后,你可以用如下命令进行推送:
git push https://[personal access token]@github.com/[user name]/[repository Name].git