什么是树对象
树对象能解决文件名保存的问题,也允许我们将多个文件组织到一起。Git 以一种类似于 UNIX 文件系统的方式存储内容。所有内容均以树对象和数据对象(git 对象)的形式存储,其中树对象对应了 UNIX 中的目录项,数据对象(git 对象)则大致上对应文件内容。一个树对象包含了一条或多条记录,一个树对象也可以包含另一个树对象。
构建树对象
可以通过 update-index;write-tree
等命令来构建树对像并塞入到暂存区。
为了演示树对象的构建,我们先准备一个空的git仓库,然后准备一个test.txt
文件并创建该文件的一个git对象:
执行git update-index --add --cacheinfo 100644 fbb2ff04e2cae17293a83c5e83af505f62cd13d1 test.txt
为test.txt
创建首个版本,并放到暂存区。由于项目中只有这个文件,因此也是项目的首个版本。
命令解释:
update-index:为项目版本创建暂存区;
–add:因为此前该文件并不在暂存区中,首次需要--add