Git 提交对象

提交对象


Git 提交对象_第1张图片
提交对象(首次)及树结构

暂存操作( add )会为每一个文件使用 SHA-1 哈希算法计算校验和,然后会把当前版本的文件快照保存到 Git 仓库中(Git 使用 blob 对象来保存它们),最终将校验和加入到暂存区域等待提交。右上角的 5b1d3 就是校验和的一部分。

当进行提交操作(commit)时,Git 会先计算每一个子目录(本例中只有项目根目录)的校验和,然后在 Git 仓库中这些校验和保存为树对象。 随后,Git 便会创建一个提交对象,它除了包含上面提到的那些信息外,还包含指向这个树对象(项目根目录)的指针。如此一来,Git 就可以在需要的时候重现此次保存的快照。

Blob 对象保存着文件快照、树对象记录着目录结构和 blob 对象索引,提交对象包含着指向前述树对象的指针和所有提交信息。上图中因为是首次提交,索引提交对象中没有 parent 指针。

Git 提交对象_第2张图片
提交链

可以从上图发现,非首次提交的提交对象都会有一个 parent 指针。



你可能感兴趣的:(Git 提交对象)