如果你有多个 github 账户,一个公司用途https://github.com/holder-office,一个个人用途https://github.com/holder-personal,本文将介绍如何在 MAC 上配置使用多个账号,当然,如果你有多个账号,同样也可以参照设置。

分为以下五个步骤:

  1. 为每个账号创建 ssh key
  2. 将 ssh key 添加到 ssh agent
  3. 将 ssh key 添加到 github
  4. 配置 ssh config 文件
  5. 使用不同账号克隆 github 仓库

Step1

确保当前目录处于 .ssh 目录:

1
2
3

cd ~/.ssh

创建 ssh key:

1
2
ssh-keygen -t rsa -C "holder-office@gmail.com" -f "github-holder-office"
ssh-keygen -t rsa -C "holder-personal@gmail.com" -f "github-holder-personal"

输入命令后,终端将要求输入密码,将其保留为空并继续。执行完成之后,在 .ssh 目录会产生两对公私钥对:

Step2

添加私钥到 ssh-agent

1
2
ssh-add -K ~/.ssh/github-holder-office
ssh-add -K ~/.ssh/github-holder-personal

Step3

在 Github 设置页面添加公钥,首先拷贝公钥

1
cat ~/.ssh/github-holder-office | pbcopy

在 github 中增加 ssh key

  1. 登录 Github
  2. ** Settings -> SSH ADN GPG keys -> New SSH Key **
  3. 粘贴拷贝的公钥,并给它一个命名,标识具体的设备

对另一个用户进行同样的设置

Step4

配置 ssh config 文件 ~/.ssh/config,如果没有先创建。增加以下配置

1
2
3
4
5
6
7
8
9
10
11

Host github.com-holder-office
HostName github.com
User git
IdentityFile ~/.ssh/github-holder-office

Host github.com-holder-personal
HostName github.com
User git
IdentityFile ~/.ssh/github-holder-personal

Step5

当需要从 github 新克隆一个项目时,需要修改对应域名

1
git clone git@github.com-{your-username}:{owner-user-name}/{the-repo-name}.git

对于已经克隆的项目,修改项目下的.git/config 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13

[core]
...
[remote "origin"]
- url = https://github.com/holder-personal/blog-origin.git
+ url = https://github.com-holder-personal/holder-personal/blog-origin.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
...
+[user]
+ email = holder-personal@gmail.com
+ name = Holder-personal
~

以上主要修改域名和用户邮箱、用户名两部分。

如果配置完之后,无法拉取推送提交,可能是本机存在 ssh 链接,简单的办法就是重启电脑。

vscode 多账户

目前 vscode 官方还不支持多 github 用户,不过该特性已经在跟进中,相信不久就可以支持。目前如果要实现多用户, 可以下载 vscode insiders,来实现两个用户的支持。