Git系列博客——(1)初识git

来源:互联网 发布:开通淘宝商城的流程 编辑:程序博客网 时间:2024/06/02 03:03

相信大家已经了解版本控制的相关知识了,如果不了解版本控制的读者,可以去看下我之前写过的这篇文章浅谈版本控制来了解下相关知识!

ok,下面来进入Git系列博客第一篇——初识git(包括Git的历史以及Git的简单介绍)

Git的历史

Linux内核开源项目有着众多的参与者,绝大多数的linux内核维护工作都华仔提交补丁和保存归档的繁琐的事务上,直到2002年,整个项目组开始使用分布式版本控制系统BitKeeper来管理和维护代码。但到2005年,开发BitKeeper的公司和linux开源社区合作关系结束,于是就收回了免费使用BitKeeper的权利,这就迫使linux开发一套属于自己的版本控制系统来使用,这时,Git诞生了。

浅谈Git

1.  Git是一个怎样的系统呢?(关心整体是否变化,Git本地操作执行)

(1)Git和其他的版本控制系统最大的差别在于:Git只关心文件数据的整体是否发生变化,而非其他系统(如cvs,subversion)关心的文件内容的具体差异。

(2)Git不会保存文件数据的前后变化的差异,Git会把变化的文件做快照后,记录在一个微型文件系统中。当每次提交更新时,Git浏览所有的文件的指纹信息并对文件做一快照,之后保存一个指向该快照的索引。(若文件没有变化,Git不会再次保存,只会对上次保存的快照做一连接,目的是提高性能)

(3)Git中,几乎所有的操作都可在本地执行,只需要访问本地的文件和资源,无需联网就可以使用Git操作(但在其他诸如cvs,subversion等版本控制系统的操作均需要连网),由于Git在本地的磁盘上就保存这所有的关于项目的历史更新,因此,Git处理项目的速度相当快。

2.  Git的数据完整性

(1)在保存到Git之前,所有的数据都要进行内容的校验和计算,之后将结果作为数据的唯一标识和索引,也就是说,一旦修改文件或者在文件传输时磁盘损坏导致文件数据丢失,Git都能立刻察觉。

(2)Git使用SHA-1算法来计算文件数据的检验和,通过对文件的内容或目录结构从而计算出一个SHA-1哈希值,用此来作为指纹字符串(由40个十六进制字符组成),Git会完全依赖这个指纹字符串,所有保存在Git数据库中的数据都是用此哈希值来做索引的,而不是简单的文件名。

3.   Git内部的三种状态

对于任何一个文件,在Git中都有三种状态,分别是:已提交(committed,表示该文件已经被安全的保存在本地数据库),已修改(modified,表示已经修改了该文件,但没有提交保存到数据库),已暂存(staged,表示把已修改的文件放在下次提交时要保存的清单中)。因此,Git管理项目的文件流转的三个工作区为:Git的本地数据目录,工作目录和暂存区。

4.   Git的基本工作流程

(1) 在工作目录中修改文件

(2) 对修改的文件做快照,并保存到暂存区

(3) 提交更新,将保存在暂存区的文件快照转存到git目录中
0 0
原创粉丝点击