一般开发人员在公司工作需要用公司内部的gitlab,自己喜欢写一点小代码则会用到github,如何在一台机器上用两个账号分别操作两个不同的git提供商呢?
在参考了这篇github上文章后https://github.com/xirong/my-git/blob/master/use-gitlab-github-together.md,自己动手尝试,感觉很棒。
1. 配置 Git 用户名、邮箱
分别配置两个账号对应到global和local,且一般是常用的为global,所以我将个人邮箱配置为github账号,公司邮箱配置为公司gitlab账号。创建全局账号(github)
git config —global user.name ‘MarsJiao’ && git config —global user.email ‘[email protected]’
—local的本地账户的配置,只在用git init创建一个本地仓库时才有效:
git config —local user.name ‘Mars’ && git config —local user.email ‘[email protected]’
2. 生成 ssh key 上传到 Github/Gitlab
ssh key 默认生成后保存在 ~/.ssh/目录下 ,默认为 id_rsa 和 id_rsa.pub 两个文件,由于我们需要分开配置,所以这么做:
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C “[email protected]”
上面这条命令在生成公私密钥对的同时制定文件名,表示gitlab专用。
ssh-keygen -t rsa -C ‘[email protected]’
这条命令用于生成默认的github的公司密钥对。
命令执行完成后,这时~/.ssh目录下会多出id_rsa.gitlab和id_rsa.gitlab.pub两个文件,id_rsa.gitlab.pub 里保存的就是我们要使用的key,这个key就是用来上传到 Gitlab上的。
3. 配置 config 文件
在 ~/.ssh目录下,如果不存在,则新建 touch ~/.ssh/config文件 ,文件内容添加如下:
Host *.corp.xyz.com
IdentityFile ~/.ssh/id_rsa.gitlab
User mars
配置完成后,符合 *.corp.xyz.com 后缀的 Git 仓库,均采取~/.ssh/id_rsa.gitlab 密钥进行验证,其它的采取默认的。
4. 上传public key 到 Github/Gitlab
以Github为例,过程如下:
1. 登录github
2. 点击右上方的Accounting settings图标
3. 选择 SSH key
4. 点击 Add SSH key
在出现的界面中填写SSH key的名称,填一个你自己喜欢的名称即可,然后将上面拷贝的~/.ssh/id_rsa.pub文件内容粘帖到key一栏,在点击“add key”按钮就可以了。
添加过程github会提示你输入一次你的github密码 ,确认后即添加完毕。 上传Gitlab的过程一样。
5. 验证是否OK
由于每个托管商的仓库都有唯一的后缀,比如 Github的是 [email protected]:*,所以可以这样测试:
ssh -T [email protected]
而gitlab的可以这样测试:
ssh -T [email protected]
如果能看到一些 Welcome 信息,说明就是 OK的了。