你可能和我一样有过这样的苦恼:一台电脑上已经全局配置了公司的git账号管理公司项目代码,同时自己平时的一些开源代码又想同步至自己的github上。如果要提交或拉代码的时候再临时修改配置,不仅操作成本很高,而且容易出错。今天就来记录下一次性配置的方法。
我使用的是windows系统,我把所有的公司项目代码都放在了D:/work/
文件夹中,所有的个人项目代码都放在了D:/personal/
文件夹中。然后在git配置文件中使用conditional includes搭配其它配置,即可实现多账号管理。
gitconfig
C:/Users/用户名/.gitconfig文件原始是只设置了公司的git用户名和邮箱
1 | [user] |
改成条件引入
1 | - [user] |
然后新建下面两个文件用来放公司和个人的用户名邮箱,这样在D:/work/
目录下会使用公司账号配置,在D:/personal/
目录下会使用个人账号配置
C:/Users/用户名/.gitconfig-work
1 | [user] |
C:/Users/用户名/.gitconfig-personal
1 | [user] |
ssh
运行下面两个命令分别生成公司和个人的ssh。-f
可以指定生成的文件名,gitlab_id_rsa
是公司的,github_id_rsa
是个人的。
1 | # 公司ssh |
完成后会得到下面的文件:
其中,gitlab_id_rsa.pub
和github_id_rsa.pub
分别是公司和个人的公钥,我们需要复制其文本内容到公司gitlab及github的ssh设置页把对应的公钥提交上去。
新建C:/Users/用户名/.ssh/config文件,内容如下:
1 | # github.com |
至此,git多账号管理配置完成。