github每次提交都要弹出登陆框,要求输入账号和密

每次进行将本地代码提交到远程的时候总会要求输入账号和密码: git push origin master

而且会弹出以下界面:

我输入账号和密码,明明是对的,却提示登陆失败: Logon failed, use ctrl+c to cancel basic credential prompt.

会弹出这个登陆框:是因为是执行过: git config --global credential.helper manager 这个指令。

你可以通过: git config --list来查看:


1、使用 git config --system --unset credential.helper,或者   git config --global --unset credential.helper

我在git base上执行完这个,这个登陆框就不弹出来了。

如果还是不行,你就要再看下上述的credential.helper=manager是不是还是存在,如果还是存在,你可能设置到全局了,那么执行:

git config --global --unset credential.helper。总之,只要是还存在的话,就要想办法将它去掉。

解决了登陆框弹出的问题,接下来解决每次都要输入密码的问题:执行 git config --global credential.helper store  (这个指令执行后,会要求第一次输入密码,然后账号和密码会被缓存到.git-credentials文件中,后续就不用再输入账号密码了)

继续查看: git config --list

发现:manager那个也已经不存在了,变成了store,你查看下你的用户目录下是不是有个.git-credentials文件,同时存了你的账号和密码。

查看发现确实生成了相应的文件,存了账号和密码

$ cat ~/.git-credentials
https://26237638443%40qq.com:123123%[email protected]


如果出现下面这种错误:你可以把~/.git-credentials这个文件删除掉,重新输入一次密码就行了。

$ git push origin master
remote: Invalid username or password.fatal: Authentication failed for 'https://github.com/shamogulang/git-learn.git/'


2、另外一种方式就是放弃使用http协议,使用ssh协议

其实我们在github上面配置的ssh-keygen的public key,是要求走ssh协议的,如果你本地的代码跟github是通过http协议关联的话,那么这个key就用不上了,你得每次都输入账号和密码,或者设置缓存账号和密码的方式。

查看你本地拉取得代码使用的协议:git remote -v 

很明显我本地这个是http协议。遇到这种情况,你可以转成走ssh协议,那么当初github上配置的ssh-keygen的public就能起作用了

你可以重新复制ssh的链接来拉取:[email protected] 这种形式的clone链接,将代码再次clone下来。然后将http项目中的修改复制过来,不过这个改动大的话,会比较麻烦。如果麻烦的话走上述的账号密码缓存方式也可以


你可能感兴趣的:(github每次提交都要弹出登陆框,要求输入账号和密)