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

GitLab教程(一):安装Git、配置SSH公钥

文章目录

  • 一、Git安装与基本配置(Windows)
    • 下载
    • 卸载
    • 安装
    • 基本配置
  • 二、SSH密钥配置

  • 为什么要使用代码版本管理工具:

最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题,笔者因此认为代码版本管理工具对于提高团队协作效率非常有帮助。

使用代码版本管理工具可以提高团队的协作效率,降低代码丢失的风险。在没有版本管理工具的情况下,如果多个开发人员同时修改同一个文件,可能会导致代码的丢失或覆盖;难以跟踪每个人的更改、合并不同分支的代码以及解决代码冲突,这会导致团队之间的沟通和合作问题;当出现问题或错误时很难追踪其源头;无法轻松地备份和恢复代码。

  • GitLab和Github的区别:

GitLab可能更适合企业或团队,以及需要更多项目管理和扩展功能的场景;GitHub更适合个人开发者或开源项目,用户可以更好地参与社区和分享代码。此外,在中国地区,GitLab相比Github在网络连接上更加稳定,笔者使用Github十次有九次都会连接失败,但是使用Gitlab却不会,这是笔者选择Gitlab的主要原因。

一、Git安装与基本配置(Windows)

参考:https://docs.gitlab.com/ee/topics/git/how_to_install_git/index.html

下载

官网下载地址:https://git-scm.com/download/win

卸载

由于我已经安装了Git,为了展示完整的过程,我先把它卸载了:

1 删除相关环境变量
2 控制面板中卸载Git工具

安装

打开下载的安装包,除了安装目录自定义和默认分支设置为main,其余的无脑下一步安装。

安装好后会有三个工具可供使用,Git Bash是linux风格的命令行, 最常用 ;Git CMD是windows风格的命令行;Git GUI是图形化操作界面。

在这里插入图片描述

基本配置

  • 直接操作配置文件即可:

D:\setup\Git\etc\gitconfig 安装目录下的配置是系统配置
C:\Users\电脑用户名.gitconfig 用户目录下的配置是用户全局配置

  • 配置gitlab/github用户名和邮箱:
[user]name = Your Nameemail = your.email@example.com
  • 另外还可以使用命令行工具如Git Bash运行以下命令来配置Git:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
  • 验证配置是否生效:

在终端执行命令git config --list即可验证。

二、SSH密钥配置

简单来说,远端的GitLab使用SSH协议与本地Git进行安全通信。

  1. SSH密钥生成:

在本地终端运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ssh-keygen:这是SSH密钥生成器的命令。
-t rsa:这是指定要生成的密钥类型,这里选择了RSA算法。RSA是一种非对称加密算法,常用于生成SSH密钥对。
-b 4096:这是指定密钥的位数,这里选择了4096位。较长的密钥位数提供更高的安全性,但也需要更长的时间来生成和处理。
-C “your_email@example.com”:这是指定注释,通常是关联密钥的电子邮件地址。注释是可选的,但是添加一个描述性的注释可以帮助我们标识密钥的用途和所有者。

该命令将生成一个RSA密钥对,并将私钥保存在本地的C:\Users\14095/.ssh/id_rsa目录下,公钥则保存在同一目录的id_rsa.pub中。

  1. 公钥添加到GitLab: 先选择Gitlab左侧边栏的SSH选项,然后点击Add new key,粘贴公钥并保存。

  2. SSH通信建立: 当我们使用SSH URL(例如git@gitlab.com:your_username/your_repository.git)进行Git操作时,本地Git会通过SSH与GitLab进行通信。

通过使用SSH进行通信,可以在本地和GitLab之间进行安全的Git操作,而无需每次都输入用户名和密码。此外,SSH还提供了对数据传输的加密,以保护代码和敏感信息。

  • 下面来验证一下ssh密钥是否成功配置:

在本地终端执行命令即可验证ssh是否成功配置:

ssh -T git@gitlab.com

在这里插入图片描述

相关文章:

GitLab教程(一):安装Git、配置SSH公钥

文章目录 序一、Git安装与基本配置(Windows)下载卸载安装基本配置 二、SSH密钥配置 序 为什么要使用代码版本管理工具: 最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题,笔者因此认为代码版本管理工具对于提高团队…...

【算法】无序数组的两数之和 - map标记

题目 在一个无序数组中找到两个数,两个数之和为给定的一个数,返回两个数在数组中的下标。 原理 遍历数组,遍历到一个数字的时候,记录下这个数及其下标,遍历时判断给定数减去这个数为key在map中是否存在,…...

Prime (2021): 2

前言 这个靶机有亿点难,收获很多。打靶的时候,前面很顺,到创建ssh公钥之后就一点不会了。 1 01 arp扫描,发现有一个130,再查看端口 有22,80,129,445,10123 dirb扫描目录 这…...

React 状态管理:安全高效地修改对象属性的 3 种方法

在 React 应用程序中,状态(state)是驱动整个应用程序的核心。当应用程序的状态发生变化时,React 会自动重新渲染相应的组件,以确保用户界面的更新。 与数组状态一样,对象状态在 React 中也需要特别处理。直接修改对象属性是不被允许的,因为 React 的不可变性原则要求我们创建一…...

python实现pdf的页面替换

利用第三方库PyPDF2,下面例子中进行的是将 origin.pdf 的第17页替换为 s17.pdf 的第1页: import PyPDF2def replace_pages(original_pdf_path, replacement_pages):with open(original_pdf_path, rb) as original_file:original_pdf PyPDF2.PdfReader(…...

[AIGC] Java List和Map常用API以及其Python实现方式对照介绍

Java和Python作为当今非常浅显易懂的编程语言,其数据结构中对于List和Map(Java)或List和Dict(Python)的操作无疑是每个程序员都非常必需的知识。本文将介绍在Java中对List和Map常用的一些操作,并给出在Pyth…...

零基础如何闯入IT的神秘大门?

前言 随着信息技术的飞速发展,IT行业成为了许多有志之士梦寐以求的职业领域。但对于零基础的人来说,如何成功进入这个行业却是一个不小的挑战。下面,我将结合自身的C语言专业知识,为大家详细阐述一条可行的学习路径,并…...

java程序 .exe启动nginx防止重复启动,已解决

java代码生成好的.exe启动nginx服务程序 根据nginx占用端口来解决nginx服务重复启动问题(下面代码了解代码逻辑后根据自己的业务需求修改即可) 代码: package org.example;import javax.swing.*; import java.awt.*; import java.io.*; …...

二十一、Rust 反射 获取类型

不同于 java 中的反射,Rust 没有提供以往意义上的运行时反射,取而代之的是 “编译期反射”,如 类型分析、类型转换、类型签名。但即便如此,也已经能对 Rust元编程 提供很多助力了。 这种操作,主要通过 Any 来实现&…...

Flutter Engine引擎概念

1.Flutter是Google提供的开源框架。 2.本身由C编写并兼容iOS(底层C)/Android(底层C)平台的FlutterEngine框架负责UI渲染、数据转移、调用DartVM虚拟机。 3.FlutterEngine框架由Skia图形库、Dart运行时、Flutter框架代码组成。Skia是用于图形绘制和文本显示的2D图形引擎库&#…...

【运行环境】加载资源的形式

相关资源:性能优化原则 1 加载资源的形式 html代码 媒体文件,如图片,视频等 javasccript css 2 加载资源的过程 DNS解析:域名-> ip地址 浏览器根据IP地址向服务器发送http 请求 服务器处理http 请求,并返回给浏览器…...

备战蓝桥杯Day40 - 第11届python组真题 - C跑步锻炼

一、题目描述 二、思路 1、使用datetime库中的方法可以很好的解决这个问题。 2、定义起始时间和结束时间,判断是否是周一或者是1号,结果res加上相应的里程数。 3、最后输出 res 即为本题答案。 三、代码实现 import datetimestart datetime.date(2…...

书生·浦语大模型第二期实战营第二课笔记和基础作业

来源: 作业要求:Homework - Demo 文档教程:轻松玩转书生浦语大模型趣味 Demo B站教程:轻松玩转书生浦语大模型趣味 Demo 1. 笔记 2.基础作业 2.1 作业要求 2.2 算力平台 2.3 新建demo目录,以及新建目录下的文件,下载模型参数 2.4 Intern…...

成功解决> 错误: 无效的源发行版:17

运行项目的时候出现下面的报错: Execution failed for task ‘:device_info_plus:compileDebugJavaWithJavac’. 错误: 无效的源发行版:17 原因:没有设置好自己项目的JDK版本 解决:1.检查自己项目的JDK版本 将自己的项目改为JDK 1…...

深度剖析:网络安全中的红蓝对抗策略

红蓝对抗 红蓝对抗服务方案 在蓝队服务中,作为攻击方将开展对目标资产的模拟入侵,寻找攻击路径,发现安全漏洞和隐患。除获取目标系统的关键信息(包括但不限于资产信息、重要业务数据、代码或管理员账号等)外&#x…...

Java异常处理之旅:解救迷失的程序员(二)

本系列文章简介: 在编程世界中,程序员们常常会遇到各种各样的问题和挑战。有时候,这些问题很容易解决,而有时候,它们却会让我们感到迷失和无助。 在这个旅程中,我们将探索Java异常处理的世界,解…...

网络安全介绍

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统能够连续可靠正常地运行,网络服务不中断。以下是一些网络安全相关的方面: 首先,随着科学技术的进…...

分享一个好看的APP下载分发页,App Store风格

分享一个好看的APP下载分发页,App Store风格 可以自动识别安卓和苹果哦! 内容直接可以页面上修改,所见即所得 下图是一个真实截图,想要的留下评论哦!...

C++ 获取数组大小、多维数组操作详解

获取数组的大小 要获取数组的大小&#xff0c;可以使用 sizeof() 运算符&#xff1a; 示例 int myNumbers[5] {10, 20, 30, 40, 50}; cout << sizeof(myNumbers);结果&#xff1a; 20为什么结果显示为 20 而不是 5&#xff0c;当数组包含 5 个元素时&#xff1f; 这…...

苹果电脑怎么彻底删除软件 苹果电脑卸载软件在哪里 cleanmymac x怎么卸载 mac废纸篓怎么删除

苹果电脑卸载软件的方法相对直观和简单&#xff0c;尤其是对于习惯使用Mac操作系统的用户来说。以苹果MacBook Pro为例&#xff0c;以下是卸载软件的详细步骤、使用方法、注意事项与建议。 一、卸载软件的详细步骤&#xff1a; 1. 打开Mac电脑&#xff0c;进入桌面&#xff0c…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...