同一台电脑同时使用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  
- 将gitlab公钥即id_rsa.pub(Windows下路径为C:/Users/用户名/.ssh/)中的内容配置到公司的gitlab上。 - 操作步骤如下图。用记事本打开id_rsa.pub,复制有所内容,粘贴到4里;5中标题可任意输入。  
2,生成gitlab密钥并配置
- 在gitbash中输入命令: - ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/github_rsa 
- 生成对应的github密钥:github_rsa和github_rsa.pub  
- 将github公钥即github_rsa.pub中的内容配置到自己的github上。操作步骤如下:  
- 打开github_rsa.pub,复制有所内容,填入后点击“Add SSH key”按钮。接着可能会跳转页面需要输入你的GitHub密码,输入确定即可。  
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
如下图所示则说明配置成功

三,git仓库配置
1,简介
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
仓库级别 local 【优先级最高】
用户级别 global【优先级次之】
系统级别 system【优先级最低】
- git 仓库级别对应的配置文件是当前仓库下的.git/config 【在当前目录下.git目录默认是隐藏的,所以在文件管理器中我们要打开显示以藏文件】  
- git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig 【宿主目录:C:\Users\xiaoqq】  
- 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
同一台电脑同时使用gitHub和gitLab的更多相关文章
- 一台电脑同时使用多个Git账号
		参照 https://my.oschina.net/u/3578363/blog/2209781 
- github和gitlab仓库一起使用
		github是网络公有代码仓库,一般用于私人代码托管,而gitlab一般是企业搭建的内部代码仓库.工作期间,我们都会同时用到这两个仓库.可公司邮箱与个人邮箱是不同的,由此产生的 SSH key 也是不 ... 
- windoes下一台电脑是无线/USB上网,如何将另一台电脑通过一拖一上网
		https://wenku.baidu.com/view/0c95830bbb68a98271fefa6e.html 一台电脑是无线上网,如何将另一台电脑通过一拖一上网有时候,在没有路由器的情况下,只 ... 
- 同一台电脑上个人的github账户如何与公司的gitlab账户共存
		前些天,写了篇博客 开发环境之git:团队协作git工作流与常用命令. 主要是回顾其中的第一小节基本配置. 但是对于很多程序员而言,我们不仅有公司的gitlab账户做公司的业务,也会有自己个人的git ... 
- 如何在同一台电脑上使用两个github账户(亲测有效)
		1 前言 由于有两个github账号,要在同一台电脑上同步代码,需要给每一个账号添加一个SSH public key,此时推送时git push origin,不知道是哪个账号的远程仓库名称,所以需要 ... 
- 怎样在同一台电脑使用不同的账号提交到同一个github仓库
		近期这段时间使用github.有时在公司办公,想要用git提交代码到自己的github仓库,提交是显示的作者是自己在公司的账户.而不是自己的github账户.这就相当于提交到github的代码不是自己 ... 
- 四步实现在一台电脑上使用多个github账号
		四步实现在一台电脑上同时使用多个GitHub账号 今天和大家聊一下如何在一台电脑上同时使用多个GitHub账号,通过以下四个步骤就可以实现,其中第二个步骤为了便于叙述分成了几个小步骤. 1. 取消全局 ... 
- 一个github账户多台电脑代码提交
		在实际工作生活中,我们可能不一定仅仅在一台电脑上编码,比如:我们平时在单位电脑1上写代码,提交代码到github账户,而我们也可能会在在家里的电脑2上继续工作,提交代码,这样就是在不同的电脑上提交代码 ... 
- 201709012工作日记--一台电脑创建两个Github账户上传代码
		1. 在一台主机上面使用多个GitHub账号 有时候,我们需要将个人账号和公司账号区分,这时候我们就会需要在一台电脑上使用2个不同的git账号. 2. 上传文件 http://blog.csdn.ne ... 
随机推荐
- SpringBean容器启动流程+Bean的生命周期【附源码】
			如果对SpringIoc与Aop的源码感兴趣,可以访问参考:https://javadoop.com/,十分详细. 目录 Spring容器的启动全流程 Spring容器关闭流程 Bean 的生命周期 ... 
- 关于Vue的那些事儿
			Vue 渐进式框架 众前端周知,Vue是一套用于构建用户界面的渐进式框架,自底向上逐层应用,关注视图层.那我们就来说道说道: 渐进式:声明式渲染->组件系统->客户端路由(router)- ... 
- get_started_3dsctf_2016
			题外:这道题不是很难,但是却难住了我很久.主要是在IDA中查看反编译出的伪代码时双击了一下gets()函数,结果进入gets函数内部,我当时就懵了,误以为这是一个自定义函数,但是自定义函数应该应该不能 ... 
- Django+pycharm+mysql 实现用户登录/注册(Django五)
			首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ... 
- [Java并发编程之美]第1章 线程基础
			第1章 线程 1.1 线程与进程 进程是操作系统资源分配和调度的基本单位,但cpu资源是分配到线程的,也就是线程是CPU分配的基本单位. 线程自己的栈资源中,存放的局部变量是线程私有的,其他线程无法访 ... 
- Scala的lazy应用
			如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会起作用. 例如:对于特别耗时的的计算操作特别有用,如打开文件IO,网络IO等. import scala.io.Sourc ... 
- 云计算openstack核心组件——nova计算服务(7)
			一.nova介绍: Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova ... 
- 关于弹性布局flex
			什么时候使用flex布局? 当页面排版涉及左右浮动.垂直居中等时,应使用flex布局来避免传统的盒式布局带来的一些Bug. 如何使用flex布局? 在目标元素的父元素设置csss属性.display: ... 
- 关于JSON的零碎小知识
			1.ali的fastjson在将实体类转成jsonString的时候,一些首字母大写的字段会自动修改为小字母,这种字段加 @JsonProperty(value = "DL_id" ... 
- java基础整理总结篇(1)
			>>java数据区域,大致分以下几种 寄存器:位于cpu内部,寄存器的数量有限,所以寄存器根据需求分配.不能直接控制它. 堆栈:位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器 ... 
