git 学习小记之记住https方式推送密码

昨天刚刚学了点git基础操作,但是不幸的是Git@OSC给出公告说尽量使用 https 进行操作。
可是在用 https 进行 push 时,都需要输入帐号和密码。

各种百度谷歌之后在Git@OSC官网找到了解决方法《https方式使用git@osc设置密码的方式
文中给出了几个方法,并且都非常简单。

关于 cache 缓存方式,我不太喜欢,因为要设置时间,而且会过期。
而 store 相应的非常方便,设置全局后,方便多个库使用。
当然如果你有一个库不是用这个帐号密码的,那单独为这个库配置一下即可。

 git config credential.helper store 

这样,去掉 --global 就可以只为当前项目配置用户名密码了。

可能第一次用的朋友不太理解,明明没有输入帐号密码,怎么能记住呢?
其实配置好后,我们要 push 一次,这次还是得输入帐号密码的,但是下一次 push 就不需要输入了。

至于最后的那个直接把 用户名:密码 加到地址里的做法,我不太喜欢。
不过我也测试了下,发现了一点小小的问题,跟大家分享下。

 git remote add origin http://yourname:password@git.oschina.net/name/project.git 

光看这个命令没任何问题。但是当我们加上用户名密码的时候,问题就来了。
例如用户名是 abc@qq.com 密码是 @123456
那地址就变成了 http://abc@qq.com:@123456@git.oschina.net/name/project.git
这样的地址完全是一个不可用的地址,我们必须把用户名和密码url编码下才行。
用户名 abc%40qq.com 和 密码 %40123456 这样的格式才可用。

当然对于 jser 来说,转换url什么的,简单的不能再简单了,按 F12 打开控制台,
输入  encodeURIComponent('abc@qq.com')  即可得到结果。

最终我们得到的命令行为

 git remote add origin http://abc%40qq.com:%40123456@git.oschina.net/name/project.git 

这样,我们可以直接 push,真的不需要输入用户名了。。

好了,今天的分享就这些了,希望对你们有帮助。

原文地址:https://www.cnblogs.com/52cik/p/git-https.html