Git 多账户设置

近来多次在GitHub个人页看自己的 contributions 和 activity 数据,发现光秃秃一堆的 create repo, 百思不得其解:这一年来我明明有很多的提交,怎么数据这么少?

今天突然想到我会不会是工作账户和GitHub账户混淆了?导致GitHub认为工作账户的提交都不是我的个人commit。打开我最近的一次 commit,果然是这样...

只好查阅资料解决了。解决办法很简单,这里记录一下:

1.生成 github 和 work 两个 rsa

ssh-keygen -t rsa -C "xxx@gmail.com"

注意,生成了rsa之后需要添加到ssh配置里面去:

$ ssh-add ~/.ssh/id_rsa_github
$ ssh-add ~/.ssh/id_rsa_work

2.在 ~/.ssh 目录下创建 config 文件

cd ~/.ssh
touch config

config里面填入下列内容:

# github
host github
    hostname github.com
    User hifzz
    IdentityFile ~/.ssh/id_rsa_github

# work gitlab
host gitlab
    hostname my_work_gitlab.com
    User hifizz
    IdentityFile ~/.ssh/id_rsa_work

3.在 GitHub 和 工作GitLab上部署 ssh key
打开 id_rsa_github.pub id_rsa_work.pub 复制里面的全部内容,粘贴到对应的 git 服务上。

4.给repo设置不同的账号。

由于git识别commit的作者是依靠git账号和邮箱,所以先取消全局的用户名和邮箱,再给每个项目单独设置用户名和邮箱。

取消用户名和邮箱:

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

单独设置用户名和邮箱:

git config  user.email "xxxx@xx.com"
git config  user.name "stackfizz"

Done!

Show Comments