同一台电脑同时使用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 ...
随机推荐
- 剑指 Offer 56 - II. 数组中数字出现的次数 II
题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例1: 输入:nums = [3,4,3,3] 输出:4 示例2: 输入:nums = ...
- Solon详解(六)- Solon的校验扩展框架使用与扩展
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- 20190923-13Linux企业真实面试题 000 021
百度&考满分 问题:Linux常用命令 参考答案:find.df.tar.ps.top.netstat等.(尽量说一些高级命令) 瓜子二手车 问题:Linux查看内存.磁盘存储.io 读写.端 ...
- 20190923-06Linux文件权限类 000 014
文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定.在Linux ...
- Java 9天入门(黑马程序员) 课程收尾 ------学生管理系统 (9.13)
1 实现功能 2 结构概述 分为两个包,各自一个类 Student.java 为学生类,目的是储存学生信息 StudentManager.java 是主程序的代码 3 Student.java 的代码 ...
- 抓取 USB 总线LOG
在实际工作中经常会遇到需要分析USB报文的情形.比如对比不同厂家4G/5G模块.解决实际IP over USB传输效率低下问题. 这时候如果能抓取到 USBMOM 总线的报文将会大有裨益.毕竟所有ho ...
- NOIP2017 Day1 T1 小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价 ...
- 【高并发】面试官:Java中提供了synchronized,为什么还要提供Lock呢?
写在前面 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块.既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是 ...
- C# 中 Struct 和 Class 的区别总结
翻译自 Manju lata Yadav 2019年6月2日 的博文 <Difference Between Struct And Class In C#>,补充了一些内容和示例. 结构体 ...
- 阿里云docker部署mysql
看完我的上一个博客之后,对centos系统应该有一定的了解,话不多说,接下来我们来在docker容器中部署mysql. 1.下载mysql镜像,因为本人用的5.7版本,你也可以下载最新版,都是可以的 ...