blob类型_git 对象类型

本文介绍了Git作为内容寻址文件系统的本质特征及其核心组成部分——键值对数据库的工作原理。详细解析了Git如何通过对象类型如blob、tree、commit及tag来组织和管理版本控制系统中的各种数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0). git 本质

git 是一个内容寻址文件系统

git 核心部分是一个简单的键值对数据库,向数据库插入任意类型的内容会返回一个键值,通过此键值可以在任意时刻再次检索该内容

1). git 对象类型

所有的 git 对象都储存在 git 的对象数据库

git 以对象类型作为开头来构造一个头部信息,接着会添加一个空格,随后是数据内容的长度,最后是一个空字节。git 会把上述头部信息和原始数据拼接起来,并计算出这条新内容的 SHA-1 校验和(40 位),然后通过 zlib 压缩这条新内容,最后将经由 zlib 压缩后的内容写入磁盘文件(SHA-1 前两个字符作为子目录名称,后 38 个字符作为子目录文件的名称)

d6ff5ba2969063d9c3aa475d0fe47d6f.png

git 有以下对象类型:

  • blob : 文件内容
  • tree : 目录。一个 tree 对象可包含多个 blobtree
  • commit : 提交。commit 通常指向一个 tree 对象,并保存了代码作者、提交信息、父提交引用等数据
  • tag : 标签,可以认为是一个永不移动的分支引用。通常指向一个固定的 commit 对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值