使用 Sourcetree
将代码推送到 github
网站时,提示错误:
Pushing to https://github.com/uniapp10/snippet
remote: Invalid username or password.
因为Sourcetree
只是可视化界面, 提交代码底层依然是 git 命令,使用git
继续提交时,提示需要填写用户名和密码,输入登陆github
网站的密码,仍然报错。
Username for 'https://github.com': uniapp10
Password for 'https://uniapp10@github.com':
remote: Invalid username or password.
记得以前没有开通两步认证时,此方法是可行的。两步验证功能开通后,登录网站首先需要输入登录密码,然后还有 Authenticator
中的防护密码。而git
命令密码输入只有一步,除非找到让两个密码合并成一个的方式才可以顺利登录。
查找资料,发现输入的密码,需要在 github
网站个人设置页面生成。路径Settings/Developer settings/Personal access tokens
,生成一串类似token
的字符串。使用git push origin
继续提交,成功。
以上方式解决问题的前提是:使用https协议拉取的项目
。
git
命令还支持ssh
协议推拉项目,需要在本地生成配对的公私钥,然后将公钥添加到github
网站的个人设置中,具体流程可参考connecting-to-github-with-ssh。
对ssh
简单的理解,就是将公钥发给服务器,以后通信时首先使用本地的私钥进行匹配验证,成功后就可以传输信息了。感兴趣可参考阮老师文章ssh_remote_login。
简单总结一下:Sourcetree
是对 git
命令的可视化显示。如果Sourcetree
出现问题,首先在命令行使用git
尝试,会得到更详细的错误提示,根据错误提示,再寻求解决办法。完~