在一台电脑上使用两个Github账号

  1. 查看已有密钥
    Mac 下输入命令ls ~/.ssh/,看到id_rsaid_rsa_pub则说明已经有一对密钥。
  2. 生成新的公钥,并命名为id_rsa_work(保证与之前密钥文件名称不同即可)
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C "yourmail@xxx.com"
  3. .ssh文件夹下新建config文件并编辑(touch config可以创建一个config的文件),另不同Host实际映射到同一HostName,但密钥文件不同。Host前缀可自定义,例子中work
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

    Host work.github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
  4. 将生成的id_rsa.pubid_rsa_work.pub内容复制到到对应的 repo
    参考教程: 使用SSH密钥连接Github【图文教程】
  5. 测试 ssh 链接
    1
    2
    3
    $ ssh -T git@work.github.com
    $ ssh -T git@github.com
    #提示:Hi IEIT! You've successfully authenticated, but GitHub does not provide shell access.出现上边这句,表示链接成功
  6. 现在开始使用新的公私钥进行工作吧
    • 情况一:将项目clone到本地, folder-name是本地文件夹路径
      1
      $ git clone git@work.github.com:xxx(用户名)/xxx(项目名).git folder-name
    • 情况二:
      1
      2
      3
      4
      5
      6
      $ echo "# bbb" >> README.md
      $ git init
      $ git add README.md
      $ git commit -m "first commit"
      $ git remote add origin git@work.github.com:ijcad/bbb.git
      $ git push -u origin master
    • 情况三:
      1
      2
      3
      4
      $ git clone git@github.com:xxx/xxx.git folder-name #原项目地址
      $ git remote rm origin
      $ git remote add origin git@work.github.com:XXX/XXX.git #重新链接新的远程仓库
      $ git remote -v #查看远程仓库有没有成功
  7. 进入folder-name项目目录。单独设置取消全局用户名/邮箱设置
    • 第一步:取消全局用户名/邮箱配置
      1
      2
      $ git config --global --unset user.name #取消全局用户名
      $ git config --global --unset user.email #取消全局邮箱
    • 第二步:单独设置每个repo用户名/邮箱配置
      1
      2
      $ git config user.name "xxxx" #单独设置用户名
      $ git config user.email "xxxx@xx.com" #单独设置邮箱
  8. 添加README.md文件修改完后保存。完成。
    1
    2
    3
    4
    $ echo "# bbb" >> README.md
    $ git add README.md
    $ git commit -m "update README.md"
    $ git push -u origin master