当前位置:   article > 正文

Git 的原理_git原理

git原理

什么是 Git?

Git 是一个分布式的版本控制系统。他的工作原理类似于区块链,严格来说,他是一个对象数据库。

Git 通过版本库来管理数据(代码)。这里的版本库,指的是开发者、或者服务器中托管的项目文件夹。在后文中,亦用版本库指由一系列历史项目文件、当前项目文件组成的文件夹。

对于一个开发者来说,他电脑上的项目文件,就叫本地版本库。而其他开发者的项目文件(有可能一样),就叫远程版本库。一般的,虽然分布式版本控制系统中,各个版本库都是同等地位的。但是为了开发方便,一般都会有一个公认的服务器,维护一个“官方”版本库。当然,假若这个官方版本库丢失了,那么可以用任何一个开发者的版本库顶上。这个官方版本库,也叫项目版本库。

不过,一个开发者,为了调试的方便,都有多个本地版本库。其中一个作为主版本库。另外的几个,一般作为调试之用。这些调试的版本库,一般称为克隆版本库。

版本库是由什么构成的

我们知道,一个项目文件,肯定包含源代码、说明文档、日志等等。由 Git 维护的版本控制系统中,一个项目文件也叫版本库。并且,区分与一般的文件管理系统,版本库除了有当前项目文件外,还包含了历史的所有项目文件,也即项目文件的历史版本(以下简称历史版本)和当前版本(以下简称当前版本)。

当然,当前版本、历史版本,并不是通过直接存储里面的项目文件,而是将它们经过处理后,转换成哈希数值存储在一个对象数据库中。这个数据库,相当于文件管理系统管理项目时,所用到的日志。只不过,可以通过这个“日志”,将项目文件恢复到历史状态。我们后面也会叫这个**“日志”为对象数据库**。

这究竟是怎么做到的呢?我们将在下一节说明。目前的主要任务,还是了解一下什么是版本库吧。

不过,在此之前,必须说明的一点是,在诸多介绍和书籍中,也将这个日志数据库,称为版本库。晕了?没关系,大家只要记住,版本库有时候是指项目文件夹的“日志数据库”(对象数据库)、也可以指项目文件夹。

注意,这里的术语,除了“日志数据库” 是笔者为了方便提出的之外,其余术语都来自官方资料

版本库(项目文件夹)的构成

版本库由:版本库(对象数据库)、工作区、缓存区构成。

其中工作区存储了实质的文件、以及文件目录。对象数据库,则存储了版本库的历史信息(历史版本等)。当然,他们都有相同的根目录,就是我们的版本库(项目文件夹)啦。
在这里插入图片描述
这样可能有点抽象,让我们看一个实际的例子:
在这里插入图片描述
其中, .git 就是我们的版本库(对象数据库)。而 folder1、folder2、ReadMe.md 就是我们的工作区了。

咦?缓存区呢?怎么没画出来。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/487801
推荐阅读
相关标签
  

闽ICP备14008679号