【Git分布式版本控制系统】开篇

来源:互联网 发布:武汉java工作好找吗 编辑:程序博客网 时间:2024/03/29 03:39

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells

首先给出Git官方网站

在介绍Github之前,我们先来了解几个概念。

集中式版本控制系统:集中式版本控制系统拥有单一的中央服务器,保存完整的版本库,用户工作时通过客户端连接到该服务器上,获取最新的文件和提交更新文件。

这里写图片描述

分布式版本控制系统:分布式版本控制系统没有中央服务器,每台设备都是一个完整的版本库,

这里写图片描述

一 Git特点

1.1 直接记录快照,而非差异比较

早期版本控制系统(例如:CVS、Subversion等)则关心文件内容的具体差异,而Git只关心文件数据的整体是否发生变化,

CVS等这些系统每次都会记录有哪些文件作了更新,以及具体更新了什么内容,如下图所示:

这里写图片描述

Git并不去保存这些前后变化的差异数据,而是把变化的文件作快照。这些快照记录在一个微型的文件系统中,每次提交更新时,它都会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。如下图所示:

这里写图片描述

1.2 大部分操作都可以在本地进行

Git的大部分操作都只需要访问本地文件和资源,不需要连接网络。在没有网络的时候可以直接从本地数据库读取数据并做更新,等到网络连接后在提交到远程仓库。

注意:远程仓库相当于一个中间服务器,它存在的目的只是为了方便多人协同作业。

1.3 始终保存数据的完整性

在数据保存到Git之前,所有的数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。该校验和使用SHA-1算法计算,得到一个由40个十六进制字符组成的指纹字符串,如下所示:

24b9da6552252987aa493b52f8696cd6d3b00373

Git数据库里保存的数据都是用此哈希值作为索引的,而不是文件名。

1.4 大部分操作仅添加数据

大部分的Git操作都仅仅是吧数据添加到数据库,在Git中,一旦提交快照就不用担心数据丢失。

0 0
原创粉丝点击