日期:2026年1月8日 摘要:配置mac多GitHub账户fetch/push
【用户提问】 有多个github账户,在mac上怎么配置fetch和push不同的账户
【Copilot回答】 下面给出在 macOS 上为多个 GitHub 账户配置 fetch/push 的常用做法(SSH 方式最稳妥):
方案:为每个账户生成独立 SSH key,并用 Host 区分
- 为每个账户生成 key(示例:work 和 personal):
ssh-keygen -t ed25519 -C "work@example.com" -f ~/.ssh/id_ed25519_work
ssh-keygen -t ed25519 -C "personal@example.com" -f ~/.ssh/id_ed25519_personal
将公钥添加到对应 GitHub 账号(Settings → SSH and GPG keys)。
配置
~/.ssh/config(使用不同 Host 名称指向不同 key):
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
AddKeysToAgent yes
UseKeychain yes
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
AddKeysToAgent yes
UseKeychain yes
- 为仓库绑定对应 Host,确保 fetch/push 用对账号:
# 工作仓库
git remote set-url origin git@github-work:WorkOrg/repo.git
# 个人仓库
git remote set-url origin git@github-personal:PersonalUser/repo.git
以后 git fetch/push 会依据 Host(github-work / github-personal)自动选对 key。
可选:每个仓库设置签名邮箱
git config user.name "Your Name"
git config user.email "work@example.com" # 在工作仓库
# 在个人仓库再设一次个人邮箱
如果必须走 HTTPS(不推荐多账号场景)
- 使用 macOS Keychain 记住不同域别名:在远程 URL 中用不同“主机别名”通过自建
.netrc或分开的 credential helper;实践中 SSH 更简单,推荐上面方案。