自动摘要
正在生成中……
在一台 macOS 上使用多个 GitHub 账号管理克隆、提交等操作,关键在于配置 SSH key 与 Git 的用户信息。下面是完整的设置步骤:
✅ 场景说明
你有两个 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)?