一直使用SVN做项目版本管理,接触Git多少有些不太习惯,有点搞不清楚Git配置的用户名和邮箱和远程仓库的登录账号、密码有什么关联,码云账户绑定多个邮箱不知道在git config user.eamil中配置那个邮箱,简直太乱了搞的我有些懵,最闹心的是折腾半天代码提交不了。一、git clone 命令报错remote: [session-6f44828b] Access denied问题明了就是拒接访问,肯定是账号、密码的错误,明明配置了git config,执行git clone命令并没有让输入用户名和密码,到底是哪里出错了。查找资料才得知,是因为git客户端缓存了错误的密码。
https协议方式每次都要输入密码,git 客户端可以设置缓存密码,这样可以不需要每次克隆都输入密码
1、设置记住密码(默认15分钟)
git config --global credential.helper cache
2、设置其他时间(例如1小时)
git config credential.helper 'cache --timeout=3600'
3、长期存储密码
git config --global credential.helper store
可能是当初设置了长期存储密码(是客户端所在的电脑,即使重装git,密码也存在)保存的账户密码会自动应用到每一个git clone命令,所以导致现在没有弹出输入账户密码的窗口,但是以前保存的密码又和现在的账户对不上或者如今要克隆的不是以前账户下的项目,就会报403错误。
解决如今的问题方法如下:
方法一、把账户密码的信息添加到你要克隆的项目URL中
git clone http://username:password@gitee.com/name/projectname.git
注意:如果username或者password中有特殊字符例如@、要把它们转为url编码把账户密码中的‘@’,‘要把它们转为url编码 把账户密码中的‘@’,‘要把它们转为url编码把账户密码中的‘@’,‘’替换为‘%40’,‘%24’,重新输入git clone url 命令,clone成功
方法二:
运行命令:rm ~/.git-credentials,删掉git config --global credential.helper store保存的账号和密码。回到每次输入用户名和密码。
再说说Git配置的用户名和邮箱有什么用
Git全局用户名、邮箱配置
$ git config --global user.name “github’s Name”$ git config --global user.email “github@xx.com”$ git config --list
1、用户每次用git 提交代码时都会记录用户名和邮箱;
2、如果用户名和电子邮件与GitHub帐户相同,则在提交修改时将两者关联;
3、在GitHub上提交时,此信息不会用作身份验证信息,当代码提交到远程库时,将再次执行帐户和密码身份验证,尽管可以随意提交帐户和电子邮件,但这会给别的账户带来麻烦。