Git Object 深入浅析
前文 Git 底层深入浅析 - 目录篇我们讲了git
目录下的文件都是什么,最后我们来讲一下git objects
。
前置知识
git cat-file -option xxx
: 用来实现所有Git
对象的读取,包括数据对象、树对象、提交对象的查看
我们先了解两个参数-p
表示查看Git
对象的内容,-t
表示查看Git
对象的类型,更多请执行git cat-file --help
查看。
git-hash-object xxx
: 用来计算文件内容的hash
值,并将生成的数据对象存储到Git
文件系统中。
-w
表示将数据对象写入到 Git
文件系统中
--stdin
表示从标准输入中获取文件内容
可以使用git hash-object --help
来查看他的参数列表。
git objects分类
git objects
分为 3
类:
commit
: 对象存储git
中的提交信息.tree
: 对象存储git
仓库中的文件元数据信息, 包括文件名及目录结构信息等.blob
: 对应的是git
仓库中的文件内容.
// 查看日志
git log -5
// 查看 Git 对象的类型
git cat-file -t 7369f96
// 查看 Git 对象的内容
git cat-file -p 7369f96
我们先找到一个hash
值,然后对这个hash
值 执行 git cat-file
,我们发现这个hash
类型是commit
,以及它的内容包括父节点,作者信息,提交者信息等其他信息。