2025年12月15日
开发笔记:Github本地多账号配置 | 甲维斯C
作为开发者常常要和github(git)打交道,除了常常去拉代码外,也用来管理自己的代码。

每个项目都使用git绝对是一个好习惯,关键时刻可以挽救你的头发和生命。
我本来只有一个github账号,后来又创建了一个。
然后就遇到了一个问题:如何在同一台电脑上完美配置两个账号,互不影响。他们可以独立的进行拉去和推送。
这个问题问了一下AI,一次搞定。我把核心步骤记录一下(抄袭 AI 答案)。
方案概述
主要通过 SSH 密钥 + Git 配置 实现账号隔离。
详细步骤
1. 为每个账号生成独立的 SSH 密钥
# 账号1 (比如个人账号)
ssh-keygen -t ed25519 -C "personal@email.com" -f ~/.ssh/id_ed25519_personal
# 账号2 (比如工作账号)
ssh-keygen -t ed25519 -C "work@email.com" -f ~/.ssh/id_ed25519_work
这里的personal@email.com和work@email.com 需要改成自己的邮箱账号。后面的名字可以不改。或者按自己的要求修改。
2. 将公钥添加到对应的 GitHub 账号
# 查看公钥内容
cat ~/.ssh/id_ed25519_personal.pub
cat ~/.ssh/id_ed25519_work.pub
输入命令之后,会有个一个字符串。整行复制。
分别登录两个 GitHub 账号,在 Settings → SSH and GPG keys → New SSH key 添加对应公钥。
3. 配置 SSH config 文件
创建或编辑 ~/.ssh/config:
# 个人账号
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
# 工作账号
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
4. 克隆项目时使用对应的 Host
# 个人项目
git clone git@github-personal:username1/repo.git
# 工作项目
git clone git@github-work:username2/repo.git
git@github-personal这部分是固定的,代表你的“个人账号”。
username1就是你github的个人账号的用户名。
repo代表的是项目名称。
5. 为每个项目配置独立的用户信息
进入项目目录后:
# 个人项目
cd personal-repo
git config user.name "Your Personal Name"
git config user.email "personal@email.com"
# 工作项目
cd work-repo
git config user.name "Your Work Name"
git config user.email "work@email.com"
这里的用户名比较自由的,随便写,邮箱是你账号绑定的邮箱。
6. 修改已有项目的远程地址(如果需要)
# 查看当前远程地址
git remote -v
# 修改为使用对应的 Host
git remote set-url origin git@github-personal:username/repo.git
# 或
git remote set-url origin git@github-work:username/repo.git
进入本地的项目,然后设置remote就可以了。
验证配置
# 测试连接
ssh -T git@github-personal
ssh -T git@github-work
成功会显示:Hi username! You’ve successfully authenticated…
进阶技巧:按目录自动切换配置
编辑 ~/.gitconfig:
[includeIf "gitdir:~/personal-projects/"]
path = ~/.gitconfig-personal
[includeIf "gitdir:~/work-projects/"]
path = ~/.gitconfig-work
创建 ~/.gitconfig-personal:
[user]
name = Personal Name
email = personal@email.com
创建 ~/.gitconfig-work:
[user]
name = Work Name
email = work@email.com
这样在不同目录下的项目会自动使用对应的用户信息! Windows下配置的时候注意路径斜杠的方向,统一用 “/”。
注意事项
- 每个项目只会使用配置的 SSH 密钥,完全隔离
- push/pull 时会根据远程地址的 Host 自动选择对应账号
- 记得在克隆或添加远程仓库时使用正确的 Host 别名
这样配置后,两个账号就能完全独立工作,互不影响了!
这下安逸了,不用切来切去了。