Git tutor
in MIT Missing Semester

原文网址

数据结构

你猜我为什么在这里
bolb
tree
commit
object
object的Hash寻址
object的id
objects
object的ref

基本说明

说明:

英文 中文
bolb 文件
tree
commit 提交/历史版本
object 文件

文件本身是一个字符串,另外具有其名字;通过文件,递归地定义树:

我们可以将树理解为“文件或文件夹”。其中,最高层级的被跟踪版本信息的树,称为commit。

继续

blob/tree/commit实际上都是磁盘上的一个区域,我们将之全部抽象为对象object。三者在此完成统一。

对象查找利用的是哈希寻址,利用Git的哈希函数SHA1-hash构造出长长的一个id字符串,是十六进制内存地址,也即指针;id太长人记不住,于是截取为引用ref。objects是从id到object的键值对。

实际上,从树开始,整个数据结构是层层抽象,是指针。

文中伪代码解释

文中的伪代码对Git作出了十分简洁明确的说明。鉴于本人语言表达不好,对之进行注释更便于理解。

仓库

根据以上说明,现在可以对Git仓库加以解释:仓库是数据对象和引用。

部分说明课后习题

2023.2