开发笔记: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.comwork@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 别名

这样配置后,两个账号就能完全独立工作,互不影响了!

这下安逸了,不用切来切去了。

 

小尾巴==========================
公众号:托尼不是塔克
交流群
知识星球
==============================

 



发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注