git push时提示需要输入username和password
Named must your fear be before banish it you can. — Yoda
使用 HTTPS 协议后 push 时需要密码
Github在2021年8月13日停止了对https方式用户名及验证码的支持,取而代之的是使用oauth在线认证,但这十分不便,故推荐代码仓库尽量使用ssh
协议
Linux/mac/windows中,
使用 HTTPS 协议后 push 时需要密码,我们可以将密码保存起来,免得重复输入。编辑或新建文件:
vi ~/.git-credentials
添加一行:
https://用户名:密码@github.com
保存退出,然后执行:
git config --global credential.helper store
即可。
可见用户名与密码是明文存储在配置文件中的,如果你觉得不够安全可以继续下面的步骤。
Mac中使用 HTTPS 协议后 push 时需要密码
对于 Mac 而言,可以将 git 默认的 credential.helper
指定成 osxkeychain
git config --global credential.helper osxkeychain
然后可以通过
$ git config credential.helper
osxkeychain
来查看是否指定成功了。之后用户名密码将会保存在系统自带的 keychain access
里,也就是通过 macOS 的钥匙链管理密码。
Windows中使用 HTTPS 协议后 push 时需要密码
新的解决方案
使用Git官方新增的manager
旧的解决方案
使用微软开发的Git-Credential-Manager-for-Windows
最新版下载地址:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/latest
安装之后,在控制台里输入:
git config --global credential.helper manager
之后还是一样的,某个项目里输入用户名密码之后,以后就再也不用输入了。你可以在管理网络密码
里找到你的用户密码——其实不是密码,而是 token 了,因为 Git-Credential-Manager-for-Windows
它会自动调用 Github 的 API 生成 Personal access tokens
,你可以在你的 Github 的 Personal settings
找到它。
管理网络密码
-> 控制面板\用户帐户\凭据管理器\windows凭据