当我往github推送的时候
(base) feimao@feimaodeMacBook-ProM1 git-demo % git push git-demo master
错误提示如下,超时了!
fatal: unable to access 'https://github.com/superfeimao/git-demo.git/': LibreSSL SSL_read: error:02FFF03C:system library:func(4095):Operation timed out, errno 60
解决方法如下:
刷新DNS即可。
1、mac刷新DNS方法:
sudo killall -HUP mDNSResponder
2、windows刷新DNS:
ipconfig /flushdns
提交后需要认证:
但是现在直接输入账号密码不行了,过时了。 大概意思就是你原先的密码凭证从2021年8月13日
开始就不能用了,必须使用个人访问令牌(personal access token)
,就是把你的密码
替换成token
!
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/superfeimao/git-demo.git/'
2.为什么要把密码换成token
2.1 修改为token的好处
令牌(token)与基于密码的身份验证相比,令牌提供了许多安全优势:
唯一: 令牌特定于 GitHub,可以按使用或按设备生成
可撤销:可以随时单独撤销令牌,而无需更新未受影响的凭据
有限 : 令牌可以缩小范围以仅允许用例所需的访问
随机:令牌不需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响
2.2 如何生成自己的token
打开github的Token设置页面:https://github.com/settings/tokens,点击生成一个Token:
后续的设置可以根据自己需要选择,对于大部分用户来说勾上“repo”应该就够用了。
创建Token成功后复制这个Token:
然后这个token就是你在push github的时候要输入的密码。账号还是你原来的账号,就是在输入密码的时候输入这个token。
以下操作针对于Window操作系统,首先打开控制面板,将查看方式切换到“小图标”,再打开“凭据管理”。
选择“Window凭据”:
向下滑动找到“github”:
点击编辑,再将刚刚复制的Token粘贴到密码处点击保存:
再次操作就不会出现刚才的报错了,其他操作系统也有相应的修改凭据操作,可以尝试一下。
3. 之后用自己生成的token登录,把上面生成的token粘贴到输入密码的位置,然后成功push代码!
也可以 把token直接添加远程仓库链接中,这样就可以避免同一个仓库每次提交代码都要输入token了:
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
<your_token>:换成你自己得到的token
<USERNAME>:是你自己github的用户名
<REPO>:是你的仓库名称
例如:(全局设置某一个仓库的 token)以后每次提交都不需要账户和密码了
git remote set-url origin https://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@github.com/github的用户名/仓库名称
最后提交 直接输入: git push