如何同时使用GitLab和GitHub?一台电脑搞定!
编辑你是不是也有这样的烦恼?公司用GitLab,个人用GitHub,两个平台的邮箱还不一样,结果SSH Key冲突了,每次切换都得折腾半天。别急,今天教你一招,轻松搞定GitLab和GitHub的同时使用!
为什么会有这个问题?
Git是通过邮箱来识别用户的,不同的邮箱生成的SSH Key也不同。如果你在公司用GitLab,邮箱是[email protected]
,而个人用GitHub,邮箱是[email protected]
,那么Git就不知道用哪个SSH Key来验证身份,结果就是push
失败。
解决方案:配置SSH的config文件
其实,解决这个问题并不难,只需要配置一下SSH的config文件,让Git知道什么时候用哪个SSH Key就行了。
1. 配置Git用户名和邮箱
首先,我们需要为不同的项目设置不同的用户名和邮箱。比如,全局配置可以设置成你的个人GitHub邮箱,而公司项目则单独配置。
# 全局配置,GitHub默认使用这个
git config --global user.name 'Yufelix' && git config --global user.email '[email protected]'
# 公司项目配置,每个新项目都要执行一次
git config --local user.name 'Yufelix' && git config --local user.email '[email protected]'
2. 生成不同的SSH Key
接下来,我们需要为GitLab和GitHub生成不同的SSH Key。默认的SSH Key是id_rsa
,我们可以为GitLab生成一个新的Key。
# 为GitLab生成一个新的SSH Key
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "[email protected]"
# 为GitHub生成默认的SSH Key
ssh-keygen -t rsa -C "[email protected]"
执行完这些命令后,~/.ssh
目录下会多出id_rsa.gitlab
和id_rsa.gitlab.pub
两个文件。id_rsa.gitlab.pub
就是我们要上传到GitLab的公钥。
3. 配置SSH的config文件
现在,我们需要告诉SSH什么时候用哪个Key。在~/.ssh
目录下,新建一个config
文件(如果还没有的话),然后添加以下内容:
Host corp.example.com
HostName git.corp.example.com
IdentityFile ~/.ssh/id_rsa.gitlab
User Yufelix
Host
是你命令行中输入的主机名,比如ssh -T [email protected]
。HostName
是实际的主机地址。IdentityFile
指定了使用哪个SSH Key。
这样,当你访问git.corp.example.com
时,SSH会自动使用id_rsa.gitlab
这个Key,其他情况则使用默认的Key。
4. 上传公钥到GitHub和GitLab
接下来,把生成的公钥上传到GitHub和GitLab。
GitHub:
- 登录GitHub,点击右上角的头像,选择“Settings”。
- 找到“SSH and GPG keys”,点击“New SSH key”。
- 把
~/.ssh/id_rsa.pub
文件的内容粘贴进去,起个名字,保存。
GitLab:
- 登录GitLab,点击右上角的头像,选择“Settings”。
- 找到“SSH Keys”,把
~/.ssh/id_rsa.gitlab.pub
文件的内容粘贴进去,保存。
5. 验证是否成功
最后,验证一下配置是否成功。
# 测试GitHub
ssh -T [email protected]
# 如果看到“Hi Yufelix! You've successfully authenticated”,说明成功了。
# 测试GitLab
ssh -T [email protected]
# 如果看到“Welcome to GitLab, Yufelix!”,说明成功了。
总结
搞定!现在你可以在同一台电脑上同时使用GitLab和GitHub了,再也不用担心SSH Key冲突的问题了。配置过程虽然有点小复杂,但一步步来,很快就能搞定。赶紧试试吧,相信你会觉得这波操作很值得!
- 0
- 0
-
分享