没有修改的文件只留着引用

修改的文件呢? 存储一份完整的新的?

栈溢出问答

直接保存提交的那个文件

但是会定期执行优化工作(git gc)

快照是指三个文件夹, 每个文件夹是一个对象

commit 对象

tree 对象

blob 对象

那么历史记录呢(未更改的文件是保存在哪里? )

commit 对象会包含上一次commit 对象的引用