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

Git教程学习:01 Git简介与安装

目录

    • 1 版本控制
      • 1.1 什么是版本控制系统?
      • 1.2 本地版本控制系统
      • 1.3 集中式版本控制系统
      • 1.4 分布式版本控制系统
    • 2 Git简史
    • 3 Git的安装
      • 3.1 在Linux上安装
      • 3.2 初次运行Git前的配置

1 版本控制

1.1 什么是版本控制系统?

版本控制系统(Version Control System,简称VCS),是一种记录一个或若干文件内容变化,以便将来查询特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

有了版本控制系统,我们可以将选定的文件回溯到之前的状态,甚至将整个项目回退到过去某个时间点的状态,我们可以比较文件的的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能的缺陷等等。使用版本控制系统通常还意味着,就算我们乱来一气把整个项目中的文件改的改删的删,我们也照样可以轻松恢复到原先的样子。但额外增加的工作量却微乎其微。

1.2 本地版本控制系统

本地版本系统大多都是采用某种简单的数据库来记录文件的历次更新差异。

image-20240115103210508

其中最流行的一种叫做RCS,现今许多计算机系统上都还看得到它的踪影。RCS的工作原理是在硬盘上保存补丁集(补丁集是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。

1.3 集中式版本控制系统

集中式版本控制系统(Centralized Version Control Systems,简称CVCS):集中式版本库集中存放于一个单一的中央服务器,保存所有文件的修订版本。人们需要先从中央服务器取得最新的版本,然后开始干活,干完活后,在把自己的活推送给中央服务器。因此,集中式版本控制器需要在联网的情况下才能开始工作。

image-20240115104618366

==缺点:==中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁也无法提交更新,也就无法协同工作。如果中心数据库所在的磁盘发生损坏,又没有做恰当的备份,所有的数据就会丢失——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。

1.4 分布式版本控制系统

分布式版本控制系统(Distributed Version Control Systems,简称DVCS):分布式版本控制系统中没有“中央服务器”,在这类系统中,像Git、Mercurial以及Darcs等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来,包括完整地历史记录。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,我们就可以在同一个项目中,分别和不同工作小组的人相互协作。 我们可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

image-20240116145448830

2 Git简史

Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

  • 速度
  • 简单地设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似Linux内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统(参见 Git 分支)。

3 Git的安装

3.1 在Linux上安装

这里我主要是在VMware虚拟机中的CentOS7上操作的,在terminal中输入命令:

$ sudo dnf install git-all

image-20240116152349237

更详细的安装方式参考链接:安装Git

3.2 初次运行Git前的配置

当我们安装好Git后,还需要再terminal进行一些相关设置。

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

除此之外,Git还有许多设置,包括常用编辑器等,可以键入如下命令查看设置并修改:

git config --list

相关文章:

Git教程学习:01 Git简介与安装

目录 1 版本控制1.1 什么是版本控制系统?1.2 本地版本控制系统1.3 集中式版本控制系统1.4 分布式版本控制系统 2 Git简史3 Git的安装3.1 在Linux上安装3.2 初次运行Git前的配置 1 版本控制 1.1 什么是版本控制系统? 版本控制系统(Version Control Syst…...

写操作系统之开发加载器

这篇文章写的很好是理解操作系统加载部分的基础 https://www.cnblogs.com/chuganghong/p/15415208.html loader的功能是: 从软盘中把操作系统内核读取到内存中。 进入保护模式。 把内存中的操作系统内核重新放置到内存中。 执行操作系统内核。 如果理解不了上面的…...

openlayers [九] 地图覆盖物overlay三种常用用法 popup弹窗,marker标注,text文本

文章目录 简介overlay 实现popup弹窗overlay 实现label 标注信息overlay实现 text 文本信息完整代码 简介 常见的地图覆盖物为这三种类型,如:popup弹窗、label标注信息、text文本信息等。 overlay 实现popup弹窗 方法详解 实例一个 new Overlay()&…...

rabbitmq-java基础详解

一、rabbitmq是什么? 1、MQ定义 MQ(Message Queue)消息队列 主要解决:异步处理、应用解耦、流量削峰等问题,是分布式系统的重要组件,从而实现高性能,高可用,可伸缩和最终一致性的架…...

openssl3.2 - 官方demo学习 - smime - smsign.c

文章目录 openssl3.2 - 官方demo学习 - smime - smsign.c概述笔记END openssl3.2 - 官方demo学习 - smime - smsign.c 概述 从证书中得到X509*和私钥指针 用证书和私钥对铭文进行签名, 得到签名后的pkcs7指针 将pkcs7指向的bio_in, 写为MIME格式的签名密文 BIO_reset() 可以…...

Klocwork—符合功能安全要求的自动化静态测试工具

产品概述 Klocwork是Perforce公司产品,主要用于C、C、C#、Java、 python和Kotlin代码的自动化静态分析工作,可以提供编码规则检查、代码质量度量、测试结果管理等功能。Klocwork可以扩展到大多数规模的项目,与大型复杂环境、各种开发工具集成…...

运筹说 第56期 | 整数规划的数学模型割平面法

前几章讨论过的线性规划问题的一个共同特点是:最优解的取值可以是分数或者小数。然而,在许多实际问题中,决策者要求最优解必须是整数,例如公交车的车辆数、员工的人数、机器的台数、产品的件数等。那么,我们能否将得到…...

vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

文章目录 一、v-model是什么二、什么是语法糖三、v-model常见的用法1、对于输入框(input):2、对于复选框(checkbox):3、对于选择框(select):4、对于组件(comp…...

大模型推理引擎面试复习大纲

Transformer原理 基本组成、注意力机制含义 transformer有哪些模块,各个模块有什么作用? transformer的模块可以分为以下几类: Encoder模块:transformer的编码器,它由多个相同的encoder层堆叠而成,每个enc…...

网络安全 | 苹果承认 GPU 安全漏洞存在,iPhone 12、M2 MacBook Air 等受影响

1 月 17 日消息,苹果公司确认了近期出现的有关 Apple GPU 存在安全漏洞的报告,并承认 iPhone 12 和 M2 MacBook Air 受影响。 该漏洞可能使攻击者窃取由芯片处理的数据,包括与 ChatGPT 的对话内容等隐私信息。 安全研究人员发现,…...

C++ 数论相关题目(约数)

1、试除法求约数 主要还是可以成对的求约数进行优化&#xff0c;不然会超时。 时间复杂度根号n #include <iostream> #include <vector> #include <algorithm>using namespace std;int n;vector<int> solve(int a) {vector<int> res;for(int i…...

freeswitch on centos dockerfile模式

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 centos7 docker上编译安装fs的流程记录&#xff0c;本文使用dockerfile模式。 环境 docker engine&#xff1a;Version 24.0.6 centos docker&#xff1a;7 freeswitch&#xff1a;v1.6.20 dockerfile 创建空目录…...

Hologres + Flink 流式湖仓建设

Hologres + Flink 流式湖仓建设 1 Flink + Hologres 特性1.2 实时维表 Lookup1.3 高性能实时写入与更新1.4 多流合并1.5 Hologres 作为 Flink 的数据源1.6 元数据自动发现与更新2 传统实时数仓分层方案2.1传统实时数仓分层方案 1:流式 ETL2.2 传统实时数仓分层方案 2:定时调度…...

Linux粘滞位的理解,什么是粘滞位?

文章目录 前言如何理解&#xff1f;粘滞位的操作最后总结一下 前言 粘滞位&#xff08;Stickybit&#xff09;&#xff0c;或粘着位&#xff0c;是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位&#xff0c;如此以来&#xff0c;只有目录内文件的所有者或者root…...

Stable Diffusion的结构要被淘汰了吗?详细解读谷歌最新大杀器VideoPoet

Diffusion Models视频生成-博客汇总 前言:视频生成领域长期被Stable Diffusion统治,大部分的方式都是在预训练的图片Stable Diffusion的基础上加入时间层,学习动态信息。虽然有CoDi《【NeurIPS 2023】多模态联合视频生成大模型CoDi》等模型尝试过突破这一结构的局限,但是都…...

深度学习与大数据推动下的自然语言处理革命

引言&#xff1a; 在当今数字化时代&#xff0c;深度学习和大数据技术的迅猛发展为自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;领域注入了新的活力。这些技术的进步不仅推动了计算机对人类语言理解与生成的能力&#xff0c;也在搜索引擎、语音助手、…...

产品经理必备之最强管理项目过程工具----禅道

目录 一.禅道的下载安装 二.禅道的使用 2.1 创建用户 2.2 产品经理的角色 2.3 项目经理的角色 研发的角色 2.4 测试主管的角色 研发角色 三.禅道使用的泳道图 一.禅道的下载安装 官网&#xff1a;项目管理软件 开源项目管理软件 免费项目管理软件 IPD管理软件 - 禅…...

美易官方:贝莱德预计美联储将在6月份开始降息,欧洲央行紧随其后

正文&#xff1a; 根据贝莱德的最新预测&#xff0c;美联储将在6月份开始降息&#xff0c;这一消息早于欧洲央行的预期。贝莱德高级投资策略师Laura Cooper表示&#xff1a;“我们更倾向于6月份降息、然后重新校准政策。”预计美联储在年底前将会降息75至100个基点。 与此同时…...

视觉检测系统:工厂生产零部件的智能检测

在工厂的生产加工过程中&#xff0c;工业视觉检测系统被广泛应用&#xff0c;并且起着重要的作用。它能够对不同的零部件进行多功能的视觉检测&#xff0c;包括尺寸和外观的缺陷。随着制造业市场竞争越来越激烈&#xff0c;对产品质检效率的要求不断提高&#xff0c;传统的人工…...

Spring事务的四大特性+事务的传播机制+隔离机制

Spring事务的四大特性 ① 原子性 atomicity 原子性是指事务是一个不可分割的工作单位&#xff0c;事务中的操作要么都发生&#xff0c;要么都不发生。 事务是一个原子操作, 由一系列动作组成。 组成一个事务的多个数据库操作是一个不可分割的原子单元&#xff0c;只有所有的…...

OpenClaw Docker Compose 部署完整指南

&#x1f4cb; 目录 前置要求快速部署&#xff08;推荐&#xff09;手动部署步骤配置通讯渠道健康检查高级配置常用管理命令故障排查安全加固持久化说明 一、前置要求 必需软件 Docker Desktop&#xff08;Windows/macOS&#xff09;或 Docker Engine Docker Compose v2&am…...

3步构建企业级实时日志分析系统:从数据采集到智能告警

3步构建企业级实时日志分析系统&#xff1a;从数据采集到智能告警 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取&#xff08;2025最新版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在现代企业IT架构中…...

SEO优化中关键词的作用是什么_关键词布局对SEO有什么影响

SEO优化中关键词的作用是什么 在现代网络营销中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;是提升网站在搜索引擎结果中排名的重要手段。其中&#xff0c;关键词的作用至关重要。关键词不仅是搜索引擎理解用户意图的重要载体&#xff0c;也是搜索引擎算法评估网站相…...

程序员鼓励师的消亡:当ChatGPT学会调情时

凌晨三点的代码战场凌晨三点的办公室&#xff0c;最后一行代码刚刚通过测试。疲惫的测试工程师瘫在椅上&#xff0c;屏幕右下角突然弹出消息&#xff1a;“亲爱的debug战士&#xff0c;今天的你又一次战胜了bug宇宙呢~&#xff08;眨眼emoji&#xff09;”。这不是人类同事的关…...

杭州污水提升泵靠谱厂家

在杭州及周边地区进行地下室改造、商业空间建设或解决特殊排污需求时&#xff0c;选择一家技术可靠、服务专业的污水提升泵厂家至关重要。在众多厂家中&#xff0c;杭州富阳赛特仪表阀门有限公司&#xff08;赛斯瑞特&#xff09; 凭借其深厚的技术积淀、过硬的产品品质和完善的…...

别再死记硬背MVC了!通过Unity连连看实战,我搞懂了数据与UI分离的5个真实好处

从连连看实战看数据与UI分离的五大工程化收益 在游戏开发领域&#xff0c;设计模式常常被视为"高级概念"而被初学者敬而远之。但当我真正在Unity中实现一个简单的连连看游戏时&#xff0c;才深刻体会到MVC模式中数据与UI分离带来的实际价值。这不是教科书上的理论说教…...

【TCC从理论到亿级支付系统落地】:7个真实生产环境故障复盘+可直接套用的补偿模板

第一章&#xff1a;TCC分布式事务的核心原理与适用边界TCC&#xff08;Try-Confirm-Cancel&#xff09;是一种基于业务层面的柔性事务模型&#xff0c;其核心在于将一个分布式事务拆解为三个明确阶段&#xff1a;资源预留&#xff08;Try&#xff09;、最终确认&#xff08;Con…...

JAVA重点基础、进阶知识及易错点总结(17)线程安全 synchronized 同步锁

&#x1f680; Java 巩固进阶 第17天 主题&#xff1a;线程安全 & synchronized 同步锁 —— 并发编程的第一道防线&#x1f4c5; 进度概览&#xff1a;今天攻克 多线程最核心难题&#xff1a;线程安全。这是面试必考、生产环境必用的知识点&#xff0c;直接决定你的代码能…...

Seeed rpcBLE库:RTL8720DN平台的Arduino兼容BLE开发方案

1. 项目概述 Seeed Arduino rpcBLE 是一款面向嵌入式开发者的轻量级蓝牙低功耗&#xff08;BLE&#xff09;软件库&#xff0c;专为基于 Realtek RTL8720DN SoC 的 Seeed Studio 开发板&#xff08;如 Wio Terminal、Wio-E5、W600 系列&#xff09;设计。该库并非从零实现 BLE…...

3张表搞定财务BP工作!财务BP必须会的3张表

做了这么多年财务数据分析&#xff0c;我发现国内很多公司的财务BP&#xff0c;还停留在自己造表的阶段。每人一套表&#xff0c;格式五花八门&#xff0c;数据口径对不上。结果就是BP花大量时间在拉表、对数的琐事上&#xff0c;真正花在业务分析和决策支持上的时间少之又少。…...