在一台电脑上管理多个github、gitlab账号

场景分析

github、gitlab、gitee都是我们平时托管代码的平台,为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管平台上。
但在实际开发中,我们往往要将代码保存到多个不同的代码托管平台上。比如,公司的代码要托管到gitlab上,自己的代码托管到github、gitee上等等,这里每个托管平台都对应各自的git账户。
一般情况下,一台电脑只对应一个git账户,只能向一个平台托管代码。然而有时我们也需要在一台电脑上同时管理多个git账户,方便管理代码。
通过查询资料,总结出这篇文章,供大家参考。如有问题,请指出,谢谢~

配置步骤

1. 删除全局github账户

查看Git所有配置

git config --list

删除全局配置项

git config --global --unset user.name

2. 进入~/.ssh目录

cd ~/.ssh

如果不存在 ~/.ssh 文件夹,则创建该文件夹:

mkdir ~/.ssh

3. 生成对应账户密匙

3.1 根据账号邮箱生成githab的密钥,终端输入命令:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "yourmail@xxx.com"

然后回车后按照提示即可生成密钥,默认的文件名是id_rsa。其中id_rsa为私钥id_rsa.pub为公钥。为了方便区分不同的git账户,这里修改密钥文件名为:id_rsa_github

gitlab、gitee等都是同理,为便于区分,修改文件名即可。

小拓展:当使用https克隆项目的时候,每次都会要求输入账号密码,使用下面的方式可免去这一步(以gitee为例):

git clone https://账号:密码@gitee.com/xxx/xxx.git
3.2 将私钥添加到本地

SSH协议的原理就是在托管平台上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成密钥对,接下来需要把私钥添加到本地:

ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地

为了检验本地是否添加成功,可以使用 ssh-add -l 命令进行查看

4. git托管账户绑定ssh

以github为例,其他的托管平台类似:
复制 id_rsa_github.pub 文件中的内容,然后打开github网站,右上角点击头像,然后找到 Settings 并点击,然后找到 SSH keys and GPG keys ,点击New SSH Key,将复制的内容粘贴到输入框内,然后点击添加按钮即可。

5. 配置账户密匙管理文件

由于添加了多个平台的密钥文件,所以需要对这些密钥进行管理。在 .ssh 目录下新建一个 config 文件(注意这个config文件并不是.txt等文件,而是一个不带任何后缀名的文件):
执行命令:

touch ~/.ssh/config

即可在.ssh下创建出config文件,可使用Vim、Sublime Text等软件打开此文件,然后添加如下内容:

# github
Host github // 网站的别名,随意取
HostName github.com // 托管网站的域名
User xx // github上的用户名
IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件

# gitlab
Host gitlab
HostName gitlab.com
User xx
IdentityFile ~/.ssh/id_rsa_gitlab

6. 测试

现在,就可以测试是否连通了,执行命令:

ssh -T git@github.com  // 使用托管平台域名
或
ssh -T git@github // 使用托管平台别名

如果出现下面这句话表示连接成功

 Hi two! You've successfully authenticated, but GitHub does not provide shell access.

第一次登录会提示:

...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入yes,回车即可。该服务器的信息将会记录在 ~/.ssh/known_hosts 文件中。
然后输入密码即可登录。

默认登录端口号为22。如果想登录某一特定端口:

ssh user@hostname -p 22

7. 管理git的用户名和邮箱

可以通过一下命令查看git配置的用户名和邮箱

查看全局配置
git config --global user.name
git config --global user.email

查看本地配置(只能在git仓库中使用)
git config --local user.name
git config --local user.email

由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。可以在全局配置中设置的是github用户名和邮箱,在gitlab项目中单独设置gitlab的用户名和邮箱。

全局配置
git config --global user.name  '个人github账号名' 
git config --global user.email  '个人github账号邮箱'

本地配置
git config --local user.name  'gitlab账号名'   
git config --local user.email  '公司账号邮箱' 

参考资料

https://blog.csdn.net/qq_39234967/article/details/117286574
https://juejin.cn/post/7014421400261754911
https://juejin.cn/s/create%20ssh%20config%20file%20on%20mac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值