一、应用场景:
公司使用的gitlab账号和自己的github账号需要来回切换
二、连接方式:
https方式:
通过用户名和邮箱进行切换
git config --global user.name "YOURUSERNAME"
git config --global user.email "YOUREMAIL"
切换后需要清除本地缓存,如windows里缓存的凭据。
ssh方式:
使用ssh方式则需要通过切换秘钥来实现。
1.执行以下命令生成秘钥:
ssh-keygen -t rsa -C "这里换上你的邮箱"
执行命令后需要进行3次或4次确认:
1.确认秘钥的保存路径(如果不需要改路径则直接回车);
![]()
注意:当需要在本地生成两个不同的秘钥,就要修改这里的路径,如第一个为/c/users/id_rsa,第二个为/c/users/id_rsa2
2.创建密码(如果不需要密码则直接回车);
3.确认密码;
2.接着,将生成的秘钥文件id_rsa.pub的内容拷贝到gitHub或者gitlab中的SSH key里:
3.通过以下命令测试是否成功连接
$ ssh -T git@github.com
多用户时出现权限问题的原因:
github使用SSH与客户端连接。当本地有两个秘钥,始终会用默认的第一个秘钥进行连接,导致无权限访问。
三、解决方法:
1.查看系统ssh-key代理:
$ ssh-add -l
(1)如果系统未添加有代理,则出现下面提示:

那就可以直接按步骤2进行添加新的代理
(2)如果系统有代理,可能是之前添加的,可以执行一下命令进行删除:
$ ssh-add -D
单个删除的方法:
$ ssh-add -d ~/.ssh/id_xxx.pub
2. 依次将不同的ssh添加代理,执行命令如下:
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa2
如果出现以下报错,则需要运行下该命令 ssh-agent bash:
Could not open a connection to your authentication agent.
四、其他方法:
也可以使用sourcetree工具来对每一个本地仓库使用不同的git账号来登录。用sourcetree打开一个仓库后,点击设置,在设置中单独对该仓库设置对应的远程仓库git账号:

这篇博客介绍了如何在使用Git时,通过配置不同的用户名和邮箱以及SSH密钥,实现在Gitlab和Github账户间的无缝切换。详细步骤包括生成SSH密钥、添加密钥到GitHub/Gitlab以及解决多用户权限问题。同时,提供了通过ssh-agent管理多个SSH密钥的方法,以及使用SourceTree工具作为另一种解决方案。
630

被折叠的 条评论
为什么被折叠?



