美文网首页
Git配置多账户,比如两个gitee或者一个gitee一个git

Git配置多账户,比如两个gitee或者一个gitee一个git

作者: 逆水寒Stephen | 来源:发表于2022-12-13 18:34 被阅读0次

一般一台电脑上我们为省去频繁输入密码的问题会配置一个全局的git账号(比如是git账号A)密码到credential.helper,但是有时我们有需求,一个项目仓库A需要用到git账号A,另一个项目仓库B需要用到git账号B,这个时候如果设置的全局的账号就会导致项目仓库B拉代码和推代码出现403,连接拒绝,这时我们就需要期望每个项目各自使用各自的账号了

调查了一波,主要有两种方式,设置https固定账号方式ssh的公私秘钥方式的方式,遗憾的是后面一种方式折腾半天无效,列在下面仅做参考,也许你有效
不管哪种方式,前提都得先去掉全局的账号配置:
1.看一下gloabal和system的config,主要是看有没有credential.helper把账号密码存起来了,所以看看global或者system哪个设置了保存就unset一下:

//查看之前设置
git config --global -l
git config --system -l
//删除之前的配置
git config --global --unset credential.helper
git config --system --unset credential.helper

2.清空全局的邮箱和用户名

//查看之前设置
git config --global --list
//删除之前的配置
git config --global --unset user.name "你的名字" //删除之前的名字配置
git config --global --unset user.email "你的邮箱"//删除之前的名字配置

1. https固定账号方式

比如进入本地项目仓库A之后,看一下url:git remote -v,https开头的就是用的https方式,git@ 开头的就是用的ssh方式,我们现在要改成https方式,用set-url按如下格式设置即可

git remote set-url origin https://gitee.com/xxxx/xxxxxx-app.git

默认是origin分支,要设置其他分支也一样; 改好之后,这时候执行git fetch/pull/push这些命令,就要输入一下设置用户的用户名和密码(这里最好用git网站生成的个人Personal access token来),然后就能fetch/pull/push了; 对于项目仓库B也是一样; 每次fetch/pull/push都需要输入密码了; 那么为了避免麻烦,针对每一个本地仓库,设置一下local的credential.helper:

git config --local credential.helper store

这样账号密码就只针对当前仓库保存,对其他仓库没有影响了。针对每一个需要管理的本地仓库,都需要按以上步骤重新设置一次url和credential.helper,设置好之后,就能一直正常fetch/pull/push了!

2. ssh的公私秘钥方式

以下简单列出操作及命令,因我无效,所以此仅做记录,详情访问https://www.jianshu.com/p/371ab45a548c

#进入~/.ssh 文件夹,若不存在就创建
cd ~/.ssh
ssh-keygen -t rsa -C 你的git邮箱
#执行以上命令后,会提示你输入文件名(这里是gitee_rd_rsa)
#输入完文件名后,回车,会要求输入密码,不管,继续回车,再按回车,就生成了一对公钥和私钥
输入命令:ll
#执行以上命令后列出ssh文件夹下面的文件,gitee_rd_rsa就是私钥,gitee_rd_rsa.pub就是公钥,将公钥的内容无损的拷贝到gitee的网站,登录后用户设置里面有个ssh管理,将公钥添加进去保存
##重复以上操作生成另外的一对公钥和私钥,文件名比如是github_rd_rsa
在 ~/.ssh 目录下,新建config文件,内容格式如下保存:

Host giteeTest
HostName gitee.com
User xxxxxx@qq.com
IdentityFile ~/.ssh/gitee_rd_rsa

Host githubTest
HostName github.com
User xxxxxxx
IdentityFile ~/.ssh/github_rd_rsa

接下来 执行ssh-agent让ssh识别新的私钥:
ssh-add ~/.ssh/gitee_rd_rsa
ssh-add ~/.ssh/github_rd_rsa
这样就可以愉快的提交代码了,如果重启电脑后,出现权限拒绝的情况。重新执行下 最后ssh-agent

其中还可以执行ssh -T git@gitee.com 、 ssh -T git@giteeTest 或者 ssh -T git@githubTest  看哈config配置是否ok
还可以执行ssh-add -l     查看ssh-add是否添加成功

相关文章

网友评论

      本文标题:Git配置多账户,比如两个gitee或者一个gitee一个git

      本文链接:https://www.haomeiwen.com/subject/msihqdtx.html