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

news2024/9/30 15:22:19

目录

    • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css 居中方式

居中分为水平居中和垂直居中 1. 水平居中1.1 文字text-align:center;1.2 盒子1.2.1:inline-block text-align 一 center;1.2.2:absolutetransform 一 父元素 display:relative;子元素 display:absolute; left:50%;transform: translatex(-50%);1.2.3&a…

一个好用的工具,对网工来说是绝杀技!

上午好,我是老杨。 提到用人,很多单位和管理者第一反应都是应聘者的能力。能力到底怎么界定,其实每个人都有不同的判定标准。 在我看来,做事专注,且能尽可能“偷懒”的网工 ,就是我个人筛选员工的标准。 …

游戏开发要注意这几个问题

游戏开发是一个充满创意和挑战的过程。对于初学者和经验丰富的开发者来说,每个项目都是一个新的学习机会。然而,成功的游戏开发不仅仅是关于编码和设计;它还涉及到细致的规划、测试和市场洞察。以下是在开发游戏时需要特别注意的几个关键方面…

CentOS stream 9配置网卡

CentOS stream9的网卡和centos 7的配置路径:/etc/sysconfig/network-scripts/ifcfg-ens32不一样。 CentOS stream 9的网卡路径: /etc/NetworkManager/system-connections/ens32.nmconnection 方法一: [connection] idens32 uuid426b60a4-4…

区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一…

npm install 安装出错时尝试过的方法

使用npm cache clean --force清除缓存,然后将安装失败的项目中的node_modules文件夹以及package-lock.json文件删除(package-lock.json是在npm install安装时生成的一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号&…

探索设计模式的魅力:抽象工厂模式的艺术

抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,用于在不指定具体类的情况下创建一系列相关或相互依赖的对象。它提供了一个接口,用于创建一系列“家族”或相关依赖对象,而无需指定它们的具体类。 主要参…

Linux安装ossutil工具且在Jenkins中执行shell脚本下载文件

测试中遇到想通过Jenkins下载OSS桶上的文件,要先在linux上安装ossutil工具,记录安装过程如下: 一、下载安装ossutil,使用命令 1.下载:wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64 2.一定要赋权限…

大创项目推荐 深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

服务器数据恢复—OceanStor存储raid5热备盘同步数据失败的数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,存储内有一组由24块硬盘组建的raid5阵列,配置1块热备盘。 服务器故障: 该存储raid5阵列中有一块硬盘离线,热备盘自动激活并开始同步数据,在热备盘同步数据的…

C400/10/1/1/1/00嵌入式系统中的模块动态加载技术

基于模块化设计的嵌入式软件测试方法 "... 进行分析。 关键词:模块化设计 嵌入式软件 软件测试 ... 相对较小的模块。为了减少模块与模块之间的关联性,模块之间的逻辑结构 ... 执行后发生错误,则由模块B和模块&…

【Alibaba工具型技术系列】「EasyExcel技术专题」摒除OOM!让你的Excel操作变得更加优雅和安全

摒除OOM!让你的Excel操作变得更加优雅和安全 前提概要存在隐患问题解决方案更优秀的选择 EasyExcel的介绍说明技术原理对比POIEasyExcel技术原理图节省内存的开销 Maven仓库依赖基础API介绍(参考官方文档)实战案例读取Excel实现Demo数据模型D…

网络性能评估工具Iperf

一、网络性能评估工具Iperf Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、***传输单元等统计信息。网络管理员可以根据这些信息了解并判断网络性能问题,从而定…

Statistics with Python: Week2 Nhanes Assignment

这门课不知出于什么原因比较小众,如果有人在做,在week2的assignment中出现问题,希望我的回答可以帮到你。 这个作业的目的就是抓取nhanes(美国健康与营养检测)2015-2016的数据,然后计算平均数/中位数/方差…

如何利用SD-WAN升级企业网络,混合组网稳定性更高?

随着企业信息化的升级,传统网络架构已经无法满足企业复杂的、多样化的组网互联需求。 企业多样化的组网需求包括: 一是需要将各办公点互联起来进行数据传输、资源共享; 二是视频会议、ERP、OA、邮箱系统、云服务应用程序等访问需求&#xff…

71.网游逆向分析与插件开发-角色数据的获取-修复角色名与等级显示问题

内容参考于:易道云信息技术研究院VIP课 上一个内容:自动化助手UI显示角色数据-CSDN博客 码云地址(ui显示角色数据 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:0049452c079867779…

ChatGLM3报错:No chat template is defined for this tokenizer

使用官方提供的脚本创建ChatGLM3的DEMO&#xff1a; cd basic_demo python web_demo_gradio.py 出现效果异常问题&#xff1a; conversation [{role: user, content: 你好}, {role: assistant, content: 你好&#xff0c;有什么我可以帮助你的吗&#xff1f;\n\n<|im_end|…

数字时代的大对决

数字时代如今正酝酿着一场大对决&#xff0c;浏览器、艺术品、音乐平台和社交通信的巅峰之战正在发生。Brave、Yuga Labs、Audius和Discord分别对标着Chrome、Disney、Spotify和WhatsApp&#xff0c;这场数字时代的较量不仅涉及浏览器、艺术品、音乐平台和社交通信的竞争&#…

基于YOLOv8深度学习的100种中草药智能识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

uniapp实现微信小程序富文本之mp-html插件详解

uniapp实现微信小程序富文本之mp-html插件 1 文章背景1.1 正则表达式1.2 mp-html插件1.3 uniapp 2 过程详解2.1 下载mp-html插件2.2 项目中引入mp-html2.3 引入正则规范图片自适应2.4 效果展示 3 全部代码 1 文章背景 1.1 正则表达式 正则表达式&#xff0c;又称规则表达式,&…