当前位置: 首页 > news >正文

[转载]同一台电脑同时使用GitHub和GitLab

原文地址:https://developer.aliyun.com/article/893801

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

一,生成ssh密钥并配置

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

1,生成gitlab密钥并配置

1.1 电脑开始菜单中找到已安装的gitbash并打开,输入命令:
ssh-keygen -t rsa -C "公司邮箱地址"

按回车,再按3次enter键,生成对应的gitlab密钥:id_rsa和id_rsa.pub
在这里插入图片描述

1.2 将gitlab公钥即id_rsa.pub(Windows下路径为C:/Users/用户名/.ssh/)中的内容配置到公司的gitlab上。

操作步骤如下图。用记事本打开id_rsa.pub,复制有所内容,粘贴到4里;5中标题可任意输入。
在这里插入图片描述

2,生成github密钥并配置

2.1 在gitbash中输入命令:

ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/github_rsa

2.2 生成对应的github密钥:github_rsa和github_rsa.pub

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

  • 进入密钥生成的位置(C:/Users/用户名/.ssh/),手动创建一个config文件(注意这个config文件要无后缀)。
  • 在新建的config文件里面配置如下内容:
# 自己的github账号配置
Host github.comport 22User gitHostName github.comPreferredAuthentications publickeyIdentityFile C:\Users\xiaoqq\.ssh\github_rsa
# 公司的gitlab账号配置(HostName为公司的gitlab地址)
Host gitlab.comport 22User gitHostName gitlab.xxx.comUser gitPreferredAuthentications publickeyIdentityFile C:\Users\xiaoqq\.ssh\id_rsa

字段配置简单说明:

HostHost可以看作是一个你要识别的模式,对识别的模式,配置对应的主机名和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地址) 如果需要指定端口号 -p 具体端口号名
ssh -T git@gitlab.xxx.com 

如下图所示则说明配置成功
在这里插入图片描述

三,git仓库配置

1,简介

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

  • 仓库级别 local 【优先级最高】
  • 用户级别 global【优先级次之】
  • 系统级别 system【优先级最低】
1.1 git 仓库级别对应的配置文件是当前仓库下的.git/config 【在当前目录下.git目录默认是隐藏的,所以在文件管理器中我们要打开显示以藏文件】

在这里插入图片描述

1.2 git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig 【宿主目录:C:\Users\xiaoqq】
  • 在这里插入图片描述
1.3 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

原文地址:https://developer.aliyun.com/article/893801 简介: 工作中我们有时可能会在同一台电脑上使用多个git账号,例如:公司的gitLab账号,个人的gitHub账号。怎样才能在使用gitlab与github时,切换成对应…...

【网络协议】【OSI】一次HTTP请求OSI工作过程详细解析

目录 1. 一次HTTP请求OSI工作过程 1.1 应用层(第7层) 1.2 表示层(第6层) 1.3 会话层(第5层) 1.4 传输层(第4层)...

springboot vue 开源 会员收银系统 (2) 搭建基础框架

前言 完整版演示 前面我们对会员系统https://blog.csdn.net/qq_35238367/article/details/126174288进行了分析 确定了技术选型 和基本的模块 下面我们将从 springboot脚手架开发一套收银系统 使用脚手架的好处 不用编写基础的rabc权限系统将工作量回归业务本身生成代码 便于…...

Java进阶学习笔记26——包装类

包装类: 包装类就是把基本类型的数据包装成对象。 看下API文档: deprecated:极力反对、不赞成的意思。 marked for removal:标识为去除的意思。 自动装箱:基本数据类型可以自动转换成包装类。 自动拆箱:…...

【JavaEE进阶】——要想代码不写死,必须得有spring配置(properties和yml配置文件)

目录 本章目标: 🚩配置文件 🚩SpringBoot配置文件 🎈配置⽂件的格式 🎈 properties 配置⽂件说明 📝properties语法格式 📝读取配置文件 📝properties 缺点分析 &#x1f3…...

第十四 Elasticsearch介绍和安装

docker-compose安装 kibana: image: docker.elastic.co/kibana/kibana:7.5.1 container_name: kibana ports: - "5601:5601" environment: ELASTICSEARCH_HOSTS: http://elasticsearch:9200 depends_on: - elasticsearch…...

YOLOv10介绍与推理--图片和视频演示(附源码)

导 读 本文主要对YOLOv10做简单介绍并给出推理图片和视频的步骤演示。 YOLOv10简介 YOLOv10是清华大学的研究人员在Ultralytics Python包的基础上,引入了一种新的实时目标检测方法,解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑…...

Java实验08

实验一 demo.java package q8.demo02;public class demo{public static void main(String[] args) {WindowMenu win new WindowMenu("Hello World",20,30,600,290);} }WindowMenu.java package q8.demo02; import javax.swing.*;public class WindowMenu extends…...

MyBatis复习笔记

3.Mybatis复习 3.1 xml配置 properties&#xff1a;加载配置文件 settings&#xff1a;设置驼峰映射 <settings><setting name"mapUnderscoreToCamelCase" value"true"/> </settings>typeAliases&#xff1a;类型别名设置 #这样在映射…...

HTML的基石:区块标签与小语义标签的深度解析

&#x1f4da; HTML的基石&#xff1a;区块标签与小语义标签的深度解析 &#x1f310; 区块标签&#xff1a;构建网页的框架&#x1f3e0; <div>&#xff1a;万能的容器&#x1f4da; <section>、<article>、<aside>&#xff1a;语义化的布局 &#x1…...

Windows域控简介

一、Windows 域控概念 Windows 域控即 Active Directory&#xff08;AD&#xff09;域控制器&#xff0c;它是 Windows Server 中的一个角色&#xff0c;用于管理网络中的用户帐户、计算机和其他设备。AD 域控制器的功能包括&#xff1a; 用户认证&#xff1a;允许用户通过用…...

项目延期,不要随意加派人手

遇到软件项目出现延期的情况时&#xff0c;不建议随意加派人手。原因如下&#xff1a; 有些任务是不可拆分的&#xff0c;不能拆分为多个并行任务&#xff0c;增加人员不会加快项目进度。新增加人员需要原有人员介绍项目中的技术架构、业务知识&#xff0c;在开发过程中也难免…...

帝国CMS验证码不显示怎么回事呢?

帝国CMS验证码有时候会不显示或打叉&#xff0c;总结自己的解决方法。 1、检查服务器是否开启GD库 测试GD库是否开启的方法&#xff1a;浏览器访问&#xff1a;/e/showkey/index.php&#xff0c;如果出现一堆乱码或报错&#xff0c;证明GD库没有开启&#xff0c;开启即可。 2…...

【必会面试题】Redis 中的 zset数据结构

目录 Redis 中的 zset&#xff08;sorted set&#xff0c;有序集合&#xff09;数据结构在底层可以使用两种不同的实现&#xff1a;压缩列表&#xff08;ziplist&#xff09; 和 跳跃表&#xff08;skiplist&#xff09;。具体使用哪种结构取决于存储元素的数量和大小&#xff…...

括号匹配数据结构

括号匹配是一种数据结构问题&#xff0c;用于检查给定的字符串中的括号是否匹配。例如&#xff0c;对于字符串 "((())())"&#xff0c;括号是匹配的&#xff0c;而对于字符串 "())("&#xff0c;括号是不匹配的。 常见的解决括号匹配问题的数据结构是栈。…...

c语言:strcmp

strcmp函数是用于比较两个字符串的库函数&#xff0c;其功能是根据ASCII值逐一对两个字符串进行比较。 语法&#xff1a;strcmp(str1, str2) 返回值&#xff1a; 如果str1等于str2&#xff0c;则返回0。 如果str1小于str2&#xff0c;则返回负数&#xff08;具体值取决于C…...

传统关系型数据库与hive的区别

数据库和Hive之间存在本质的区别&#xff0c;主要体现在设计目的、数据处理方式、数据存储、查询延迟、数据更新能力、以及适用场景等方面。下面详细阐述它们之间的主要差异&#xff1a; 设计目的与应用场景&#xff1a; 数据库&#xff1a;主要是面向事务处理&#xff08;OLTP…...

windows-386、windows-amd64、windows-arm64这三者有什么区别?

选择文件的版本出现下面问题&#xff1a; Architectures windows-386 &#xff1a;这些是针对 32 位 Windows 系统编译的。windows-amd64 &#xff1a;这些是针对具有 AMD 或 Intel x86-64 架构的 64 位 Windows 系统编译的。windows-arm64 &#xff1a;这些是针对具有 ARM 架…...

链表经典题目—相交链表和链表倒数第k个节点

&#x1f389;&#x1f389;&#x1f389;欢迎莅临我的博客空间&#xff0c;我是池央&#xff0c;一个对C和数据结构怀有无限热忱的探索者。&#x1f64c; &#x1f338;&#x1f338;&#x1f338;这里是我分享C/C编程、数据结构应用的乐园✨ &#x1f388;&#x1f388;&…...

Java 写入 influxdb

利用Python随机生成一个1000行的csv文件 import csv import random from datetime import datetime, timedelta from random import randint, choice# 定义监控对象列表和指标名称列表 monitor_objects [Server1, Server2, Server3, DB1] metric_names [CPUUsage, MemoryUsa…...

UC2843芯片实战:用Simplis搭建PWM控制器模型(附完整仿真文件)

UC2843芯片实战&#xff1a;用Simplis搭建PWM控制器模型&#xff08;附完整仿真文件&#xff09; 在电源设计领域&#xff0c;UC2843系列芯片堪称电流模式PWM控制器的"常青树"。这款经典器件凭借稳定的性能和简洁的外围电路&#xff0c;被广泛应用于反激、正激等拓扑…...

OpenClaw技能开发入门:为千问3.5-27B定制PDF解析模块

OpenClaw技能开发入门&#xff1a;为千问3.5-27B定制PDF解析模块 1. 为什么需要自定义PDF解析技能 去年我在处理一批学术论文时&#xff0c;发现OpenClaw内置的文本处理能力对复杂PDF支持有限。当需要从几百页的技术文档中提取特定章节时&#xff0c;要么手动复制粘贴&#x…...

OpenClaw+Qwen3.5-9B低成本运营:个人自媒体内容自动化生产

OpenClawQwen3.5-9B低成本运营&#xff1a;个人自媒体内容自动化生产 1. 为什么选择这个技术组合 去年开始全职做科技类自媒体后&#xff0c;我发现自己陷入了"创作-发布-运营"的死亡循环。每周要产出3篇技术文章&#xff0c;还要同步到6个平台&#xff0c;最后连陪…...

LoRaWAN Arduino库:Grove Wio E5轻量级接入方案

1. 项目概述LoRaWAN-Seeed-Grove-Wio-E5 是一个面向嵌入式开发者的轻量级 Arduino 库&#xff0c;专为 Grove Wio E5 LoRa-E5 模块设计。该模块基于 Semtech SX1276 射频芯片&#xff0c;集成 ARM Cortex-M0 内核&#xff08;nRF52832&#xff09;&#xff0c;出厂预烧录 AT 固…...

CAN总线分析仪实战:从安装配置到数据收发调试全解析

1. CAN总线分析仪入门指南 第一次接触CAN总线分析仪的朋友可能会觉得这东西有点神秘&#xff0c;其实它就是个帮我们和汽车电子设备"对话"的翻译官。我刚开始用的时候也是一头雾水&#xff0c;后来发现只要掌握几个关键步骤&#xff0c;就能轻松上手。现在市面上常见…...

Agent 的能力体系

提示词及其能力边界 在将 Agent 具体应用到实际的生产环境中之前&#xff0c;人们首先需要弄清楚的是&#xff1a;提示词在这类应用中的作用到底是什么&#xff1f;它的能力边界在哪里&#xff1f;如果我们在这两个问题上的理解出现了偏差&#xff0c;那么后续所有针对 Agent …...

FreeRTOS消息队列原理与实战应用指南

1. FreeRTOS消息队列核心概念解析消息队列作为FreeRTOS中最核心的通信机制之一&#xff0c;其设计理念源于操作系统中的生产者-消费者模型。在实际嵌入式开发中&#xff0c;我经常用它来解决任务间的数据传递问题。与裸机编程中的全局变量共享不同&#xff0c;消息队列通过内核…...

VirtualAPK插件监控告警终极指南:钉钉/企业微信通知配置

VirtualAPK插件监控告警终极指南&#xff1a;钉钉/企业微信通知配置 【免费下载链接】VirtualAPK A powerful and lightweight plugin framework for Android 项目地址: https://gitcode.com/gh_mirrors/vi/VirtualAPK VirtualAPK作为Android平台强大的插件化框架&#…...

Lepton AI农业监测:作物生长分析服务构建实践

Lepton AI农业监测&#xff1a;作物生长分析服务构建实践 【免费下载链接】leptonai A Pythonic framework to simplify AI service building 项目地址: https://gitcode.com/gh_mirrors/le/leptonai Lepton AI是一个Pythonic框架&#xff0c;专为简化AI服务构建而设计&…...

实战应用:基于快马平台构建汇率数据获取与移动平均线分析工具

最近在做一个外汇数据分析的小工具&#xff0c;正好用InsCode(快马)平台快速实现了原型。这个工具主要用来监控美元对欧元和日元的汇率变化&#xff0c;并计算移动平均线辅助判断趋势。下面分享下具体实现思路和过程。 数据获取部分 我选择了免费的ExchangeRate-API作为数据源&…...