场景
公司的仓库是在gitlab上,而自己的代码仓库在github,由于公司和个人的邮箱不同,所以ssh也是不同的,当想向自己的github仓库提交时,邮于pull和push是识别邮箱的,所以这时候就尴尬了。
如果公司和个人邮箱名相同的同学请忽略这篇文章。
解决办法
对ssh协议配置config文件
配置git用户名、邮箱
1234# 全局配置,我把自己的邮箱设置成全局的了git config --global user.name 'chenhao' && git config --global user.email '215171650@qq.com'# 针对单个项目配置,每个项目都需要执行下(缺点)git config user.name 'chenhaohao' && git config user.email 'chh@xkeshi.com'生成ssh key
1234# gitlabssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "215171650@qq.com"# githubssh-keygen -t rsa -C "chh@xkeshi.com"进入~/.ssh中发现有两个文件 id_rsa.pub 和 id_rsa.gitlab.pub
上传密钥到github和gitlab
github 步骤
- 登录github
- 点击头像里accounting settings
- 选择ssh key
- 将~/.ssh/id_rsa.pub里内容ctrl+v到key中
- add ssh key
gitlab 步骤
- 登录gitlab
- 点击头像里profile settings
- 选择ssh keys
- 将~/.ssh/id_rsa.gitlab.pub里内容ctrl+v到key中
- add key
配置config文件
进入~/.ssh目录下,打开config文件1touch ~/.ssh/config然后添加
1234# 如果以xkeshi.so为后辍的仓库验证文件使用id_rsa.gitlab.pubHost *.xkeshi.soIdentityFile ~/.ssh/id_rsa.gitlabUser chenhaohao然后验证一下
12ssh -T git@github.comssh -T git@gitlab.ops.xkeshi.so