git 中的存储模型

本文深入探讨了Git的存储模型,详细解释了commit、tree和blob对象的关系。通过实例展示了如何追踪从commit到其包含的tree,再到blob(文件内容)的过程,揭示了Git如何在.objects目录下存储数据,并且说明了如何通过对象标识符找到对应的文件内容。
摘要由CSDN通过智能技术生成

我们之前提到在git中有三种存储对象

1 commit 2 tree 3 blob

一个commit对应一个tree。一个tree对应于多个tree和多个blob。一个blob对应于一个文件文件内容相同就是同一个blob

那么git是怎么样的一种存储文件的形式呢我们可以以我的git为例子看看

首先我们看看当前的commit唯一标识

[git@localhost git_learn]$ git log --oneline
98051f5 change  readme
96b52f6 add java file
f23d21d change files
dc91b3d add  javascript
f295d10 add css file
e331ef4 add index.html
126790e add readme file
可以看出当前版本是98051f5然后我们查看当前coomit的类型

[git@localhost git_learn]$ git cat-file -t 98051f5
commit
可以看出是commit类型。

然后我们查看commit的内容

tree f0630429089e61c23954c84ebf844195c9901205
parent 96b52f698b886fd7ba0d76a701594bbd62181013
可以看出两点 1 commit 下面包含一颗 tree同时也可以通过当前commit找到前一个commit我们可以查看parent的类型作为验证[git@localhost git_learn]$ git cat-file -t 96b52f698b886fd7ba0d76a701594bbd62181013
commit

然后我们查看tree f0630429089e61c23954c84ebf844195c9901205的内容

[git@localhost git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值