Git(二)版本控制、发展历史、初始化配置、别名

news2024/11/23 17:14:04

目录

    • 一、版本控制
      • 1.1 为什么要使用版本控制?
      • 1.2 集中化的版本控制系统
      • 1.3 分布式的版本控制系统
      • 1.3 两种版本控制系统对比
        • 集中式(svn)
        • 分布式(git)
    • 二、发展历史
    • 三、初始化配置
      • 3.1 配置文件
      • 3.2 配置内容
    • 四、别名

一、版本控制

版本控制:是指记录一个或若干个文件的内容变化,以便将来查阅特定版本修订情况的系统。

1.1 为什么要使用版本控制?

  • 有了版本控制,我们可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。(就算我们将项目中的文件改的面目全非,也可以轻松恢复到原先的样子。)
  • 有了版本控制,我们可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致问题出现的原因等等。

常见的版本控制系统有两种:集中化的版本控制系统分布式的版本控制系统

1.2 集中化的版本控制系统

集中化的版本控制系统诸如:CVSsvn 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。在版本控制初期,这已成为版本控制系统的标准做法。

这种做法带来了好处,现在每个人都可以在一定程度上看到项目中的其他人正在做什么。而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统要远比在哥哥客户端上维护本地数据库来得轻松容易。

1.3 分布式的版本控制系统

分布式版本控制系统诸如:Git、BitKeeper 等,客户端并不只是提取最新版本的文件快照,而是把代码仓库完整地拉取下来。这样,任何一处协同工作用地服务器发生故障,事后都可以用任何一个拉去下来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

更进一步来看,许多这类系统都可以指定和若干不同的远程代码仓库进行交互。藉此,我们就可以在同一项目中分别和不同工作小组的人相互协作。

分布式的版本控制系统在管理项目时,存放的不是项目版本与版本之间的差异,它存的是索引(所需磁盘空间很少,所以每个客户端都可以放下整个项目的历史记录)。

1.3 两种版本控制系统对比

集中式(svn)

优点:

  • 代码存放在单一的服务器上,便于项目的管理。

缺点:

  • 由于存储的是文件差异,导致回滚的速度会很慢;
  • 服务器宕机,员工写的代码得不到保障;
  • 本地无法新建分支,每次需要在服务器新建分支;
  • 服务器磁盘损坏,每个项目的历史记录都会丢失。
分布式(git)

优点:

  • 由于存储的是索引,回滚速度极快;
  • 分布式存储,不担心服务器宕机或损毁;
  • 支持本地新建分支,操作方便。

缺点:

  • 操作命令相比 svn 较多,存在学习成本。

二、发展历史

同生活中的许多伟大事件一样,Git 诞生于一个极具创造性的年代。

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

在这里插入图片描述

到了 2005 年,开发 BitKepper 的商业公司同 Linux 内核开源社区的合作关系结束。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linux Torvalds/林纳斯·托瓦兹)不得不西区搅匀,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对于新的系统制定了若干目标:

  • 分支切换速度快、容量小(压缩)、简单的设计、完全分布式
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 有能力搞笑管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年依赖,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。他的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统可以应付各种复杂的项目开发需求。


三、初始化配置

一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,我们随时可以用相同的命令修改已有配置。

3.1 配置文件

Git 提供了一个 git config 的命令来配置或读取相应的工作环境变量,而正是这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对 所有用户 都普遍适配的配置。若使用 git config --system,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于 该用户。若使用 git config --global,读写的就是这个文件。
  • .git/config 文件:当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件)这里的配置仅仅针对 当前项目 有效。

注意:每一个级别的配置都会覆盖上层的相同配置。

3.2 配置内容

主要需要配置的是你个人的 用户名邮箱地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,如何联系,所以会随更新内容一起被永久纳入历史记录。

-- 配置用户名
git config --global user.name "ACGkaka"
-- 配置邮箱地址
git config --global user.email acgkaka@example.com
-- 查看配置信息
git config --list
-- 删除配置信息
git config --global --unset user.email

四、别名

Git 并不会在你输入部分命令时自动推断出你想要的命令。如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松为每一个命令设置一个别名。

例如:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

当要输入 git commit 时,只需要输入 git ci 即可。

整理完毕,完结撒花~ 🌻





参考地址:

1.【尚硅谷】深入Git底层原理丨一套掌握git版本控制系统,https://www.bilibili.com/video/BV1Yi4y137eF/

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

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

相关文章

基于卷积神经网络的乳腺癌分类 深度学习 医学图像 计算机竞赛

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

仅手机大小!极空间T2随身数据魔盒发布:既是NAS 又是U盘

今天极空间召开新品发布会,带来了极空间T2随身数据魔盒,售价1999元起。 极空间T2随身数据魔盒体积仅手机大小,充电宝可供电。既是个NAS,又是个U盘。 其具备双M.2插槽,可安装两块固态硬盘。4G内存支持docker&#xff0c…

Excel宏(VBA)自动化标准流程代码

自动化流程 我们对一个报表进行自动化改造会经历的固定流程,这里称为“流水线”,通常包含以下流程: 打开一个表格选择打开的表格选择表格中的Sheet选择Sheet中的单元格区域 (有时候需要按条件筛选)复制某个区域 粘贴…

互联网Java工程师面试题·Spring篇·第二弹

目录 3、Beans 3.1、什么是 spring bean? 3.2、spring 提供了哪些配置方式? 3.3、spring 支持集中 bean scope? 3.4、spring bean 容器的生命周期是什么样的? 3.5、什么是 spring 的内部 bean? 3.6、什么是 spri…

Linux下编译和安装ffmpeg

本文演示Centos下面如何编译和安装ffmpeg的过程, 一、ffmpeg的编译和安装 1、下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz tar -zxvf ffmpeg-5.1.tar.gz2、进入压缩目录,编译编译和安装 cd ffmpeg-5.1./configure --prefix/usr…

酷开科技 | 酷开系统,为居家生活打开更精彩的窗口

电视在我们的日常生活中扮演着重要的角色。虽然,作为客厅C位的扛把子——电视的娱乐作用深入人心,但是,它的涵义和影响力却因我们每个人的具体生活环境而存在着种种差异,而我们的生活环境又受到我们所处的社会及文化环境的影响。 …

哈希索引(PostgreSQL 14 Internals翻译版)

概览 哈希索引提供了根据特定索引键快速查找tuple ID (TID)的功能。粗略地说,它只是一个存储在磁盘上的哈希表。哈希索引唯一支持的操作是根据相等条件进行搜索。 当一个值插入到索引中时,将计算索引键的哈希函数。PostgreSQL哈希函数返回32位或64位整…

SSM - Springboot - MyBatis-Plus 全栈体系(三十六)

第八章 项目实战 四、后台功能开发 3. 头条模块开发 3.1 登陆验证和保护 3.1.1 需求描述 客户端在进入发布页前、发布新闻前、进入修改页前、修改前、删除新闻前先向服务端发送请求携带 token 请求头后端接收 token 请求头后,校验用户登录是否过期并做响应前端根…

Openssl数据安全传输平台009:加密理论基础:哈希/非对称加密RSA/对称加密AES

文章目录 0. 代码仓库代码编译时候可能出现的错误 1. 哈希1.1 哈希算法的种类:1.2 使用的头文件1.3 哈希算法API1.3.1 详解md5 API1.3.2 sha1/sha224/sha256/sha384/sha512常用API 1.5 sha1代码测试1.4 在VS中添加预处理器定义1.5 哈希算法C代码封装的思路 2. 非对称加密RSA2.1…

uniapp 单选框以及多选框样式更改

radio以及checkbox默认样式不符合自身需求时,根据自身需求更改样式,以下是自身的示例: 单选: 多选: 由于uniapp自身包含了一套默认的样式,所以如果不想全局更改只想在某个单据页面使用的话,就…

Redis3.2.12版本服务器迁移

1.新机器更新yum源 yum -y update 2.新机器安装redis数据库 yum install redis 3.新机器下载fedora的epel仓库 systemctl enable redis 4.将旧机器上的/etc/redis.conf拷贝到新机器的/config目录下 scp -r -P22 redis.config root162.32.196.57:/config/redis.config 5.新机器启…

CentOS 编译安装TinyXml2

安装 TinyXml2 Git 源码下载地址:https://github.com/leethomason/tinyxml2 步骤1:首先,你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后,需要将源代码解…

LrC 13 ACR 16:点颜色

Adobe Lightroom Classic 13( 2023 年 10 月版)及 Adobe Camera Raw 16 新增的点颜色 Point Color功能可以方便、精准地调整图像上的颜色。 LrC:修改照片/混色器/点颜色 Develop/Color Mixer/Point Color ACR:编辑/混色器/点颜色 …

希捷推出Exos系列24TB硬盘:配备增强型缓存 性能提高三倍

希捷推出了全新的Exos 24TB硬盘。其基于传统的CMR构建,为3.5英寸规格,转速为7200 RPM。 同时,Exos系列24TB硬盘拥有10片磁盘,每片磁盘的容量为2.4TB,是希捷存储密度最高的硬盘,适用于超大规模企业和数据中心…

最新Jn建站系统2.0 已集成各类源码 【附视频安装教程】

附视频安装教程|已集成各类源码 目前已集成的网站: 1.发卡网(最新) 2.代刷网(无需授权) 3. 博客网(自带模板) 4.易支付(稳定版) 5.个人导航网(简洁) 6.代理查询网 7.留言网 8.匿名网 9.表白墙(最新) 10.抽奖网 11.源码站 12.z-blog博客程序 13.织梦CM…

Ubuntu Linux下如何搭建并安装EDK2

本教程全程手动下载安装: 1、官网下载EDK2安装包(这里下载当前最新版) ---- 2023.10.23 网址:https://sourceforge.net/projects/edk2/files/UDK2015_Releases/UDK2015/UDK2015.Complete.MyWorkSpace.zip 2、解压 unzip UDK2015.Complete.MyWorkSpace…

Android 实现资源国际化(多语言)

目录 一、介绍 二、字符串资源 三、图片资源 四、日期和时间格式 五、其他 六、应用内切换语言 七、资源文件命名规则 一、介绍 Android国际化(多语言)是一种开发技术,旨在使Android应用程序能够在「不同语言和文化环境」下运行,并为用户提供本地…

vue3中使用vue3-pdf-app和使用浏览器内置的PDF插件浏览器PDF文件

文章目录 先准备一个PDF使用浏览器内置的PDF插件预览PDF在HTML中使用浏览器插件预览PDFVscode使用插件发布服务后直接通过URL地址访问PDF可使用的浏览器 在vue3项目中预览PDF文件vue3项目也是可以通过URL地址访问文件的vue3中使用浏览器内置的PDF插件预览PDF代码如下所示&#…

单窗口单IP适合炉石传说游戏么?

游戏道具制作在炉石传说中是一个很有挑战的任务,但与此同时,它也是一个充满机遇的领域。在这篇文章中,我们将向您展示如何在炉石传说游戏中使用动态包机、多窗口IP工具和动态IP进行游戏道具制作。 作者与主题的关系:作为一名热爱炉…

【分布式】大模型分布式训练入门与实践 - 04

大模型分布式训练 数据并行-Distributed Data Parallel1.1 背景1.2 PyTorch DDP1) DDP训练流程2)DistributedSampler3)DataLoader: Parallelizing data loading4)Data-parallel(DP)5)DDP原理解析…