学习笔记:Git内部原理

来源:互联网 发布:有关打击电信网络诈骗 编辑:程序博客网 时间:2024/05/16 05:22

       Git的主要结构:

      objects目录,存储所有数据内容。

      refs目录,存储分支指针

      HEAD文件,存储当前分支

      index文件,保持暂存区域的信息


        一.数据存储

        Git是一套内容寻址的文件系统,它的数据是以key-value存储的。存储方式为:为每份内容剩余一份文件,取得内容与头信息的SHA-1校验和,创建以该校验和的前两个字符为名称的目录,以校验和的其余38个字符为名的文件。所以,我的理解是,比较两个文件是否相同,可以通过SHA-1来比较。

        Git把对象都存在在objects文件夹里面。有以下四种对象:

        blob:普通的文件,如源码等文件。相当于Linux中的inodes或文件内容。

        tree:相当于Linux中的目录。一个单独的tree包含一条或多条tree目录,每一条目录含有一个指向blob或子tree对象的SHA-1指针,并附有对象的权限模式、类型和文件信息。

        commit:快照信息。

        annotated tag:带注释的标签。


       二.引用(reference)

       Git的一个分支就算一个head记录的引用,HEAD文件是一个指向当前分支的标示符。

       现在,包含分支的git图像如下图:


        

       在使用远程仓库的时候,还有一个概念需要了解:Refspec

        Refspec的格式是一个可选的+,接着是<src>:<dst>

  


0 0
原创粉丝点击