【git】-git的特点

来源:互联网 发布:网络科学导论 课程 编辑:程序博客网 时间:2024/05/16 02:25

【前言】

       相信大家用SVN(Subversion)这款版本控制系统已经非常熟练了,检出代码、上传文件感觉小菜一碟,下面小编来给大家介绍另外一款脱颖而出的版本控制工具,它就是Git ,免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

【Git的特点】

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

            git 关心的只是文件数据的整体是否发生变化,而大多数其他系统(比如svn)则只关心文件内容的具体差异,每次记录都有哪些文件做了更新,以及都更新了哪些行的什么内容。工作方式参见下图 。

         

      git  并不保存这些前后变化的差异数据,保存的是文件的快照。实际上,git更像是把变化的文件做快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引,为提高性能,若文件没有变化,git不会再次保存,而只对上次保存的快照作一链接,git的工作方式如下图所示:

      

      2.近乎所有操作都是本地执行

            在git中的绝大多数操作都只需要访问本地文件和资源,不用联网,因为它有本地数据库的镜像。但如果用集中式版本控制系统的话,差不多所有操作都需要联网,因为git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

           当你使用git的时候,你可以在飞机上或者火车上,频繁地提交更新,等到有网络了再上传到远程仓库,同样,在家里,你也可以继续工作,等到回到公司有网的时候,再推送到远程仓库中;当你使用svn的时候就没有这么爽快了, 虽然可以编辑文件,但是在进行文件提交和更新的时候就需要网络的支持,在实际体验之后,你会很享受git带来的不同。

     3. 时刻保持数据完整性

          在保存到git 之前,所有数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,git 一无所知。这项特性作为git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,git都能立即察觉。

         git  使用SHA-1 算法计算数据的校验和的机制叫做SHA-1 散列。这时一个由40 个十六进制字符(0-9和 a-f )组成字符串, 基于git中文件的内容或目录结构计算出来。SHA-1哈希看起来是这样:

         

            Git中使用这种哈希值的情况很多,你将经常看到这种哈希值。实际上,Git数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。

【总结】

          作为新时代的产品,git 还有许多先进的特点,最好的理解就是去了解它,使用它,你会慢慢喜欢上它带来的体验的!!!  

0 0
原创粉丝点击