本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
树对象(tree)—— 保存文件名和目录关系
树对象主要解决2个问题,:文件名的保存和文件目录关系的保存
就像下面这样
下面我们就来模拟一下构建上面这颗树,也就是模拟保存这3个文件,其中的"bak"是一个目录,下面有一个文件
首先可以看到,我们一共需要保存的是3个文件,new.txt 、 内容为version 2的 test.txt 和内容为version 1的 test.txt。其中我们上面已经把version 1的 test.txt写入到Git仓库了。
Git是怎么创建树对象的呢?
Git 根据某一时刻暂存区(即 index 区域)所表示的状态创建并记录一个对应的树对象,如此重复便可依次记录(某个时间段内)一系列的树对象。而暂存区里保存就是我们add进去的文件和目录。
而我们之前的text.txt是直接存入到Git数据库里面了,没有在暂存区,所以先要把这个文件读到暂存区里来
我们可以用 update-index 命令更新暂存区(跟我们做git add