【Git】同时在本地使用多个github账号进行github仓库管理

【Git】同时在本地使用多个github账号进行github仓库管理

背景

本地有多个均需要使用的github账号情况,如:项目A(远程仓库A)使用github账号A、项目B(远程仓库B)使用github账号B,项目A和项目B需要同时推进。此时为了维持两个项目开发的需要,需要在本地频繁切换不同github账号。接下来介绍一个”一劳永逸“的方法,在同时开发两个项目的同时避免在本地频繁切换不同github账号。

避免频繁切换账号——在本地使用SSH进行多账号配置

原理

在这里插入图片描述

1、在本地为每个github账号生成SSH key

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_a -C "xxxx@163.com"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_b -C "xxxx@gmail.com"

此时会生成~/.ssh/id_rsa_a~/.ssh/id_rsa_a.pub~/.ssh/id_rsa_b~/.ssh/id_rsa_b.pub

邮箱是github账号的邮箱。

2、在github账号上添加各自的本地公钥

在github登录账号A → Settings → SSH and GPG keys → New SSH key → 贴上 id_rsa_a.pub 内容

在github登录账号B → Settings → SSH and GPG keys → New SSH key → 贴上 id_rsa_b.pub 内容

3、在本地配置 .ssh/config文件

编辑或创建.ssh/config文件:

nano ~/.ssh/config

在config文件中添加如下内容,不同【github账号】对应不同的【自定义Host】,让本地能够通过【目标Host名称】识别到要【使用哪个github账号】对目标远程仓库进行操作:

# 账号A的配置
Host github-a
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_a

# 账号B的配置
Host github-b
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_b

Host的名称可以自行修改、更有辨识度。

4、在本地用自定义Host添加远程仓库

本地进入项目A所在文件夹,执行如下命令:

git remote set-url <项目A的远程仓库名> git@github-a:your-username-a/your-repo.git

注意:用的是 git@github-a: 而不是 git@github.com:,指向 .ssh/config 中的Host配置。

本地进入项目B所在文件夹,执行如下命令:

git remote set-url <项目B的远程仓库名> git@github-b:your-username-b/your-repo.git

5、验证本地对不同github账号的连接是否生效

在本地分别测试如下链接:

ssh -T git@github-a
ssh -T git@github-b

如果看到类似”Hi your-username-a/b! You’ve successfully authenticated…”的输出,则连接成功。

6、进行本地仓库对远程仓库的操作

name-a/b! You’ve successfully authenticated…”的输出,则连接成功。

6、进行本地仓库对远程仓库的操作

现在,每个本地仓库都对应了不同github账号,在切换不同本地仓库时无需反复登录、登出github账号,使用push或者pull命令时本地可以自动识别应该使用哪个github账号的ssh连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值