学习笔记:Git内部原理

       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>

  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值