同一台电脑同时使用gitHub和gitLab

简介: 工作中我们有时可能会在同一台电脑上使用多个git账号,例如:公司的gitLab账号,个人的gitHub账号。怎样才能在使用gitlab与github时,切换成对应的账号,并且免密?这时我们需要使用ssh(git可以选择使用https方式、ssh方式两种方式通信,但使用https方式时,每次fetch和push代码都需要输入账号和密码),以windows为例,进行如下操作。


一,生成ssh密钥并配置


分别对gitlab和github生成对应的密钥(默认情况下本地生成的秘钥位于C:/Users/用户名/.ssh/)


1,生成gitlab密钥并配置


  • 电脑开始菜单中找到已安装的gitbash并打开,输入命令:
    ssh-keygen -t rsa -C "公司邮箱地址"
    按回车,再按3次enter键,生成对应的gitlab密钥:id_rsa和id_rsa.pub

微信图片_20220423214100.png


  • 将gitlab公钥即id_rsa.pub(Windows下路径为C:/Users/用户名/.ssh/)中的内容配置到公司的gitlab上。
    操作步骤如下图。用记事本打开id_rsa.pub,复制有所内容,粘贴到4里;5中标题可任意输入。

微信图片_20220423214106.png


2,生成github密钥并配置


  • 在gitbash中输入命令:
    ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/github_rsa


  • 生成对应的github密钥:github_rsa和github_rsa.pub微信图片_20220423214110.png


  • 将github公钥即github_rsa.pub中的内容配置到自己的github上。操作步骤如下:

微信图片_20220423214113.png


  • 打开github_rsa.pub,复制有所内容,填入后点击“Add SSH key”按钮。接着可能会跳转页面需要输入你的GitHub密码,输入确定即可。

微信图片_20220423214116.png


3,配置git,访问不同host时使用不同的密钥


  • 进入密钥生成的位置(C:/Users/用户名/.ssh/),手动创建一个config文件(注意这个config文件要无后缀)。
  • 在新建的config文件里面配置如下内容:
# 自己的github账号配置
Host github.com
    port 22
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile C:\Users\xiaoqq\.ssh\github_rsa
# 公司的gitlab账号配置(HostName为公司的gitlab地址)
Host gitlab.com
    port 22
    User git
    HostName gitlab.xxx.com
    User git
    PreferredAuthentications publickey
    IdentityFile C:\Users\xiaoqq\.ssh\id_rsa
  • 字段配置简单说明:
Host
    Host可以看作是一个你要识别的模式,对识别的模式,配置对应的主机名和ssh文件
Port
    自定义的端口。默认为22,可不配置
User
    自定义的用户名,默认为git,可不配置
HostName
    真正连接的服务器地址
PreferredAuthentications
    指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile
    指定本次连接使用的密钥文件

设置HostName时需要注意,复制公司gitlab或者自己的github地址时,需要把"https://"去掉,只保留github.com部分。


二,验证是否设置成功


在C:/Users/用户名/.ssh中,右键打开Git Bash Here,分别输入命令:

# 测试github
ssh -T git@github.com
# 测试gitlab(@符后面的为公司gitlab地址)
ssh -T git@gitlab.xxx.com


如下图所示则说明配置成功

微信图片_20220423214126.png


三,git仓库配置


1,简介


在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:

仓库级别 local 【优先级最高】

用户级别 global【优先级次之】

系统级别 system【优先级最低】

  • git 仓库级别对应的配置文件是当前仓库下的.git/config 【在当前目录下.git目录默认是隐藏的,所以在文件管理器中我们要打开显示以藏文件】

微信图片_20220423214130.png


  • git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig 【宿主目录:C:\Users\xiaoqq】
    微信图片_20220423220142.png


  • git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig
    简单了解后我们就可以进行配置了


2,配置


  • 用户级别配置
    用户级别是配置公司gitlba账号还是自己github账号,可以自由选择。因为平常使用公司的代码频率较高,所以我选择将gitlab账号配置成用户级别。gitBath下执行如下命令:
    git config --global user.name 'lfr' #公司账号名称
    git config --global user.email 'lfr@company.com' #公司账号邮箱


  • 仓库级别配置
    local(仓库级别)配置成github的账号。选择一个文件夹作为github的本地仓库,在该文件夹里鼠标右键打开Git Bash Here,执行命令:git init
    再执行命令:
    git config --local user.name 'username' #github账号名称
    git config --local user.email 'username@gmail.com' #github账号邮箱
    之后自己的github的代码都应该在这个仓库下进行pull、push操作。


3,克隆项目代码


克隆自己github的项目代码至本地仓库。在2.2中的本地仓库打开gitBash,输入命令:

git clone git@github.com:CarlLfr/pythonScript.git # github项目地址(clone with ssh)

这样就可以对克隆的项目进行git其他的操作了。

至此,我们就可以在这台电脑上同时使用github与gitlab进行代码的设置就完成了。

参考:

https://www.jianshu.com/p/a34e90b5ce2a
https://blog.csdn.net/weixin_43161811/article/details/88804030
相关文章
|
开发工具 git
git,github,gitlab,码云的区别
码云https://gitee.com/enterprises?from=tg-6-7是开源中国社区推出的基于git的代码托管服务平台,基于gitlab。目前招商银行,中国科学技术大学,CSDN等多家企业和机构都在使用码云平台
429 0
|
9月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
354 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
开发工具 git
idea中git替换,推送到新的github或者gitlab上面
idea中git替换,推送到新的github或者gitlab上面
1020 2
|
网络安全 开发工具 git
一个git如何同时绑定gitlab与github
一个git如何同时绑定gitlab与github
553 0
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
341 0
|
程序员 开发工具 git
【实测】gitlab/github 如何过滤项目内的文件
【实测】gitlab/github 如何过滤项目内的文件
|
Linux 网络安全 开发工具
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
|
存储 Shell 开发工具
Windows系统下将代码上传至gitLab或gitHub
Windows系统下将代码上传至gitLab或gitHub
用GitLab搭建自己的私有GitHub
用GitLab搭建自己的私有GitHub
279 0
|
Shell 开发工具 数据安全/隐私保护
如何上传项目到github/gitlab?
如何上传项目到github/gitlab?
408 0