包含 a、暂存区文件的路径名称 b、SHA-1 ID
文件内容已经作为 blob 对象保存到了 .git/objects 目录中
查看.git/objects目录
tree .git/objects -L 2
blob 对象
blob 对象是 Git 用来保存文件数据的二进制对象 可以通过 ID 取得对应的 blob 对象
通过ID查看对象内容
git cat-file -p adc335f5acd0ef124dbdccef5060f5f01113a5dc
将一个修改过的文件加入暂存区后 如果又在工作区对文件进行了新的修改 需要重新将其加入暂存区
提交历史
提交历史是工作区文件在不同时间的文件快照 快照即文件或文件夹在特定时间点的状态 包括内容和元信息
查看当前分支的提交历史
git log
a、Git 通过「提交对象」来储存每一次提交 b、对对象内容进行 SHA-1 计算得到的哈希值即ID 不同的内容一定会得到不同的结果 c、Git 既把ID作为每一个对象(不仅仅是提交对象)的唯一标识符 d、也用作 .git/objects 目录中的地址(其中存储着实际的二进制文件)
通过id找对象并打印内容
git cat-file -p f6ff29325167718c5eafb6fb1c10aea721b2fd12
提交对象的内容包含
- 对应的 tree 对象的 ID
- 父提交对象的 ID
- 作者、提交者及提交信息等元信息
tree 对象
git ls-tree f6ff29325167718c5eafb6fb1c10aea721b2fd12
提交历史中的每一个提交都包含着一份完整的某一时刻的文件快照 并通过保存上一次提交的引用形成连续的文件快照历史