在一台电脑上配置两个github账户

环境

  • MacBook Pro
  • ssh key
  • 平时工作常用一个github账号(已经配置),自己另有一个私人账号,现在希望在这台电脑上同时配置两个ssh key
  • 工作用的多,个人用的少

步骤

  1. 生成 ssh key: cd ~/.ssh ssh-keygen -t ed25519 -C "your_email@example.com" 注意要取一个可以分辨的名字,比如id_github_personal
  2. 把公钥添加到个人账户
  3. 修改 ssh 配置文件 vi ~/.ssh/config
  4. 此时文件中已经有一个工作账户, 继续添加个人账户:
# Github
Host github.com
  AddKeysToAgent yes
  HostName github.com
  UseKeychain yes
  IdentityFile ~/.ssh/id_work

Host github.com-
  AddKeysToAgent yes
  HostName github.com
  IdentityFile ~/.ssh/id_github_personal
  1. 注意Host必须和前面区分开,可以随便取什么名字,用最方便最好记最能区分的就可以。比如abcxyz也是可以的
  2. 把key 添加到ssh-agent: ssh-agent -K ~/.ssh/id_giithub_personal
  3. 测试是否成功:
  • 随便找到一个个人账户里的仓库的ssh地址, 比如 git@github.com:MyUserName/RepoName.git
  • github.com 替换成 abcxyz: git@abcxyz:MyUserName/RepoName.git
  • git clone git@abcxyz:MyUserName/RepoName.git
  • 成功克隆仓库

总结

  • 由上可知,ssh配置中的 Host 只是一个名字,实际使用时会将域名替换成旗下的 HostName
  • 上面把个人账户设置成了 github.com- 为了方面在克隆的时候只要复制下来多加一根下划线即可。
  • 查看克隆下来的仓库url: cat ./.git/config, 发现其已经是 git@abcxyz:MyUserName/RepoName.git, 如果想更改,使用git remote set-url origin git@newHost:newUserName/RepoName.git
  • 此时提交任何更改并推送到远端仓库,将会使用 git config --list --global 下配置的工作账户。
  • 使用 git config --local user.name 'userName'git config --local user.email 'abc@email.com' 配置当前仓库使用的用户名。
  • 再次把更改提交到远端仓库,这个提交就是刚刚配置的用户做的了。(此处做了个小实验, 将ssh 配置修改,AddKeysToAgent no, IdentitiesOnly yes, 并不影响工作账户也可以推送到这个个人仓库)

参考

posted @ 2022-02-18 22:05  略略略——  阅读(219)  评论(0编辑  收藏  举报