×

在一台macOS中使用多个github账号

Falcon 2025-05-11 views:
自动摘要

正在生成中……

在一台 macOS 上使用多个 GitHub 账号管理克隆、提交等操作,关键在于配置 SSH keyGit 的用户信息。下面是完整的设置步骤:


✅ 场景说明

你有两个 GitHub 账号,例如:

  • 个人账号:github.com/personal
  • 工作账号:github.com/work

你希望分别克隆和提交仓库,比如:

  • ~/Projects/personal/xxx
  • ~/Projects/work/yyy

🧩 步骤一:为每个账号生成 SSH key

打开终端,分别为每个账号生成 key:

# 为个人账号生成 SSH key
ssh-keygen -t ed25519 -C "your_personal_email@example.com" -f ~/.ssh/id_ed25519_personal

# 为工作账号生成 SSH key
ssh-keygen -t ed25519 -C "your_work_email@example.com" -f ~/.ssh/id_ed25519_work

🧩 步骤二:添加 SSH key 到 SSH agent

启动 SSH agent 并添加 key:

eval "$(ssh-agent -s)"

ssh-add --apple-use-keychain ~/.ssh/id_ed25519_personal
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_work

🧩 步骤三:添加 SSH key 到 GitHub

进入 GitHub 网站:

  • 进入 Settings > SSH and GPG keys
  • 分别为两个账号添加对应的公钥内容(如 ~/.ssh/id_ed25519_personal.pub~/.ssh/id_ed25519_work.pub

🧩 步骤四:配置 ~/.ssh/config 指定 Host

编辑 ~/.ssh/config 文件:

# 个人账号配置
Host github.com-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal
    UseKeychain yes
    AddKeysToAgent yes

# 工作账号配置
Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    UseKeychain yes
    AddKeysToAgent yes

🧩 步骤五:克隆时指定对应 Host

不要使用默认的 git@github.com:xxx,而要使用我们配置的 Host:

# 克隆个人账号仓库
git clone git@github.com-personal:username/repo.git

# 克隆工作账号仓库
git clone git@github.com-work:workuser/repo.git

🧩 步骤六:为不同目录配置 Git 用户信息(可选但推荐)

如果你希望在不同项目中自动使用不同 GitHub 用户名和邮箱,可以使用 Git 的 includeIf

编辑全局 Git 配置文件:

git config --global includeIf.gitdir:~/Projects/personal/.path ~/.gitconfig-personal
git config --global includeIf.gitdir:~/Projects/work/.path ~/.gitconfig-work

然后分别创建这两个配置文件:

# ~/.gitconfig-personal
[user]
    name = Your Personal Name
    email = your_personal_email@example.com

# ~/.gitconfig-work
[user]
    name = Your Work Name
    email = your_work_email@example.com

✅ 验证

在个人项目目录运行:

git config user.name
git config user.email

然后运行:

ssh -T git@github.com-personal
ssh -T git@github.com-work

你应该能看到各自账号的欢迎信息。

  • 如果希望保持现有的 GitHub 账户(比如 currentUser)继续通过默认地址: git@github.com:currentUser/repo.git
  • 只为 额外的另一个 GitHub 账户(比如 workUser)配置 SSH 和 Git 设置,不影响默认账号

这很好办,你只需为 新增账号单独配置 SSH Host,并在使用时指定这个 Host。


✅ 你只需执行以下步骤

1. 为新账号生成 SSH Key

ssh-keygen -t ed25519 -C "your_work_email@example.com" -f ~/.ssh/id_ed25519_work

2. 添加新 key 到 SSH agent

eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_work

3. 把公钥加入新 GitHub 账户

~/.ssh/id_ed25519_work.pub 添加到新账号的 GitHub SSH keys 中。


4. 修改 ~/.ssh/config 文件(只为新账号添加一段

# 新账号(工作账号)配置
Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    UseKeychain yes
    AddKeysToAgent yes

你无需修改现有 github.com 的配置,继续保持默认账号。


5. 克隆新账号仓库时使用新的 Host

git clone git@github.com-work:workUser/work-repo.git

原本的账号继续使用:

git clone git@github.com:currentUser/personal-repo.git

6. (可选)为新账号配置 Git 用户信息

如果你希望在提交时使用不同邮箱:

# 进入新账号的项目目录
cd ~/Projects/work/work-repo

# 设置 Git 用户信息(只影响当前仓库)
git config user.name "Your Work Name"
git config user.email "your_work_email@example.com"

这样设置后,你就能:

  • 默认使用原来的账号,无需改动;
  • 通过 github.com-work 使用另一个账号,互不影响。

是否也需要配置两个 GitHub 账号之间能推送不同的远程仓库(比如一个项目有两个 remotes)?

本文收录于