解决一台电脑配置两个 GIT 账户

公司的也在用 git,但是账号和地址肯定都不同,需要配置两个不同的提交环境。

生成两个 Key

生成第一个 Key

如果电脑上已经在用 Git 了就无需重新生成 key,用当前的就可以。key 保存在~/.ssh文件夹内。

如果第一次使用,就使用以下命令重新生成:

➜  .ssh ssh-keygen -t rsa -C home_pc
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dominic/.ssh/id_rsa): id_rsa_pc

home_pc就是个备注名,假设我们这个 key 是平时捣腾 GitHub 玩,用来和 GitHub 同步用的,id_rsa_pc是生成的文件名,打开id_rsa_pc.pub可以看到生成的 key 最后就是备注名(如下)。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABR/Fyj7Pz+e+/////////////////ZbdPGtHB86fLQYh/uR+TKcCERedrDKzGPdVt8= home_pc

配置 GitHub SSH

路径为:

Github-头像-settings-SSH and GPG keys-New SSH key

测试连通

ssh -T git@github.com

生成第二 Key

这个 key 就打算用来和公司代码同步用,所以备注名换成了work_ubuntu,文件名也换成了id_rsa_work

➜  .ssh ssh-keygen -t rsa -C work_ubuntu
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dominic/.ssh/id_rsa): id_rsa_work

配置公司 SSH

和 GitHub 类似,根据自己公司使用的平台设置。

配置本地账户

因为本地的代码仓库可能是从 GitHub 下载的,也有从公司仓库下载的。那么提交代码时就需要为仓库配置指定的用户名和邮箱。以前只有一个 GitHub,所以配置时使用的是-global参数,任何一个仓库都是配置的相同的用户名与邮箱,而现在需要区分。

取消全局配置

 # 取消全局 用户名/邮箱 配置
git config --global --unset user.name
git config --global --unset user.email

单独配置代码仓

进入项目目录,有.git目录的那一级。

# 单独设置每个repo 用户名/邮箱
git config user.email “xxxx@xx.com”
git config user.name “xxxx”