当前位置: 首页 > 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;只有所有的…...

汤姆供应链

1. 自营中泰专线渠道&#xff0c;泰国曼谷设有清关公司与海外仓&#xff0c;本地团队 24 小时响应&#xff1b;2. 与多家船公司签订特种柜舱位协议&#xff0c;旺季舱位有保障&#xff1b;3. 服务过机械制造、建材、跨境电商等行业客户&#xff0c;累计运输超 1000 票大件设备&…...

智绘低空新图景:黎阳之光以数智技术赋能低空经济高质量发展

在长三角一体化战略纵深推进、新质生产力加速培育的时代浪潮中&#xff0c;低空经济正成为驱动区域经济转型升级的重要引擎。华东师范大学大虹桥低空经济研究院的成立&#xff0c;为行业搭建起“理论实践技术人才”的全链条创新平台&#xff1b;而北京黎阳之光科技有限公司&…...

从“寄生二极管”入手:用万用表二极管档快速判别NMOS/PMOS管脚与好坏

从“寄生二极管”入手&#xff1a;用万用表二极管档快速判别NMOS/PMOS管脚与好坏 当你面对一个没有任何标识的MOS管&#xff0c;或者怀疑电路板上的MOS管损坏时&#xff0c;如何快速准确地判断它是NMOS还是PMOS&#xff0c;并识别出D、S、G三个引脚&#xff1f;本文将详细介绍一…...

保姆级教程:在Ubuntu 22.04上搞定DCU-Z100(ZiFang)驱动安装与验证

保姆级教程&#xff1a;在Ubuntu 22.04上搞定DCU-Z100&#xff08;ZiFang&#xff09;驱动安装与验证 国产DCU&#xff08;Deep Computing Unit&#xff09;正逐渐成为高性能计算领域的新选择&#xff0c;而DCU-Z100&#xff08;代号ZiFang&#xff09;作为其中的代表产品&…...

如何3步解决Mac NTFS读写难题:Nigate终极免费开源方案

如何3步解决Mac NTFS读写难题&#xff1a;Nigate终极免费开源方案 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management fo…...

6 个 AI Agent Skill 实战推荐:每天省出 2 小时的自动化方案

引言Agent 能帮我们做的事越来越多 -- 写文案、做封面、盯数据、找选题。但很多人装上 Agent 之后发现&#xff0c;它除了聊天和写几段文案&#xff0c;好像什么也干不了。问题不在 Agent。就像刚买回来的手机&#xff0c;没装 App 之前就是块砖。Agent 出厂自带的能力有限&…...

Cesium实战:手把手封装一个带交互提示的测量工具(距离/面积/高度)

Cesium实战&#xff1a;从零封装高交互性测量工具全攻略 在三维地理信息系统的开发中&#xff0c;测量功能是最基础却又最考验细节的模块之一。许多开发者在使用Cesium时&#xff0c;往往满足于直接调用现成的测量插件&#xff0c;却忽略了背后精妙的交互设计和性能优化空间。本…...

【语音检测】基于matlab GUI短时自相关的基音周期检测【含Matlab源码 15451期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…...

抖音下载器完整指南:从零构建高效批量下载系统的技术实践

抖音下载器完整指南&#xff1a;从零构建高效批量下载系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

FSearch:重新定义Linux文件搜索的高性能解决方案

FSearch&#xff1a;重新定义Linux文件搜索的高性能解决方案 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中&#xff0c;文件搜索一直是开发者和技术爱…...