管理切换多个Git账号

2017-03-01

如何简单快捷在电脑管理和切换不同Git账号,诸如GitHub,GitLab等

前期准备

  1. 安装git,完成后Windows系统通过git-bash启动终端,
    Mac OS XLinux直接打开终端即可。

  2. 拥有至少两个GitHub账号,例如有两个账号:masterguest。(下面内容均以GitHub账号为例)

  3. 取消git全局设置

    1
    2
    git config --global --unset user.name
    git config --global --unset user.email

SSH key配置

  1. 生成RSA公私秘钥

    1
    ssh-keygen -t rsa -b 4096 -C "master_email@example.com"
  2. 出现下列提示,可以输入秘钥的文件名(默认为id_rsa

    1
    Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

    例如master账号,可以输入id_rsa_master

  3. 出现下列提示,是否需要绑定密码,可以选择不输入,即直接ENTER

    1
    2
    Enter passphrase (empty for no passphrase): [Type a passphrase]
    Enter same passphrase again: [Type passphrase again]
  4. 完成后在~/.ssh/目录就会生成私钥id_rsa_master和公钥id_rsa_master.pub

  5. 添加SSH key

    1
    ssh-add ~/.ssh/id_rsa_master
  6. 通过下面命令,查看SSH key的设置

    1
    ssh-add -l
  7. guest账号的配置同上,得到私钥id_rsa_guest和公钥id_rsa_guest.pub

GitHub账号配置

  1. 登录master账号,在Settings -> SSH and GPG keys里,点击New SSH key

  2. "Title"输入你要命名的名称,方便今后识别

  3. 将公钥(id_rsa_master.pub)中的内容粘贴到"Key"中,可以通过下面命令打印内容

    1
    cat ~/.ssh/id_rsa_master.pub
  4. 点击Add SSH key按钮完成添加

  5. guest账号的配置同上

SSH config配置

  1. 创建config文件

    1
    2
    cd ~/.ssh/
    touch config
  2. 打开该config文件,写入以下内容保存:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # master(default)
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_master
    # guest
    Host guest.github.com # 这个可以任意设置
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_guest
  3. 这里要说明下,今后相对应的SSH路径如下:

    1
    2
    3
    4
    5
    # master(default)
    git@guest.github.com:master/your_repo.git
    # guest
    git@guest.github.com:guest/your_repo.git

SSH测试

  1. 测试master账号与GitHub的SSH连接

    1
    ssh -T git@github.com

    成功会得到下面提示信息:

    1
    2
    Hi <username>! You've successfully authenticated, but GitHub does not
    provide shell access.
  2. 如果成功,在GitHub的Settings -> SSH and GPG keys里,相应的SSH key图标会变成绿色

  3. guest账号的配置同上

Git项目配置

  1. 在Git项目中,例如master,命令行输入:

    1
    2
    git config user.name "master"
    git config user.email "master"
  2. 查看Git项目的配置

    1
    git config --list
  3. 修改git remote:

    1
    2
    git remote rm origin
    git remote add origin git@github.com:master/your_repo.git
  4. 如果是guest,修改git remote:

    1
    2
    git remote rm origin
    git remote add origin git@guest.github.com:guest/your_repo.git
  5. 具体情况根据~/.ssh/config的配置内容调整相应URL

  6. 完成后就可以愉快的git pullgit push


Blog comments powered by Disqus