爱客仕-前端团队博客园

公司和个人git账号如何同时在一台电脑使用

场景

公司的仓库是在gitlab上,而自己的代码仓库在github,由于公司和个人的邮箱不同,所以ssh也是不同的,当想向自己的github仓库提交时,邮于pull和push是识别邮箱的,所以这时候就尴尬了。

如果公司和个人邮箱名相同的同学请忽略这篇文章。

解决办法

对ssh协议配置config文件

  1. 配置git用户名、邮箱

    1
    2
    3
    4
    # 全局配置,我把自己的邮箱设置成全局的了
    git config --global user.name 'chenhao' && git config --global user.email '215171650@qq.com'
    # 针对单个项目配置,每个项目都需要执行下(缺点)
    git config user.name 'chenhaohao' && git config user.email 'chh@xkeshi.com'
  2. 生成ssh key

    1
    2
    3
    4
    # gitlab
    ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "215171650@qq.com"
    # github
    ssh-keygen -t rsa -C "chh@xkeshi.com"

    进入~/.ssh中发现有两个文件 id_rsa.pub 和 id_rsa.gitlab.pub

  3. 上传密钥到github和gitlab

    github 步骤

    • 登录github
    • 点击头像里accounting settings
    • 选择ssh key
    • 将~/.ssh/id_rsa.pub里内容ctrl+v到key中
    • add ssh key

    gitlab 步骤

    • 登录gitlab
    • 点击头像里profile settings
    • 选择ssh keys
    • 将~/.ssh/id_rsa.gitlab.pub里内容ctrl+v到key中
    • add key
  4. 配置config文件
    进入~/.ssh目录下,打开config文件

    1
    touch ~/.ssh/config

    然后添加

    1
    2
    3
    4
    # 如果以xkeshi.so为后辍的仓库验证文件使用id_rsa.gitlab.pub
    Host *.xkeshi.so
    IdentityFile ~/.ssh/id_rsa.gitlab
    User chenhaohao
  5. 然后验证一下

    1
    2
    ssh -T git@github.com
    ssh -T git@gitlab.ops.xkeshi.so