5.Git三大对象类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.Git三大对象类型相关的知识,希望对你有一定的参考价值。
git三大对象类型
git三大对象类型分别是commit、tree、blob
commit顾名思义是提交的意思,它在git仓库中以快照的形式保存,代表着项目不同的时间节点所对应的内容,Git 可以将项目恢复到任意一个快照
tree代表着当前快照内的组织结构,也可看作是文件夹目录
blob代表着当前快照内的具体文件对象,git存储方式是以文件内容作为判断,即不同名的相同内容的两个文件只会占用git一份存储空间
思考题:新建的Git仓库,有且仅有1个commit,仅仅包含 /doc/readme ,请问该commit中一共包含几个对象,内含多少个commit,多少个tree,多少个blob?
答案是4个对象,1个commit,2个tree,1个blob
git的对象类型的层级关系与linux文件的目录结构十分相似,每个commit可以看作是一个整体,commit本身是一个commit对象,包含着一个tree对象(/),从目录和对象二者结合的角度看,该commit包含/doc/readme。其中,commit看作是/(根目录),同时他是一个tree对象,tree内包含着目录doc/;doc/是二级目录,同时他也是一个tree对象,tree内包含着文件readme;readme是一个文件,同时他也是一个blob对象
以上是关于5.Git三大对象类型的主要内容,如果未能解决你的问题,请参考以下文章
面向对象的三大特性 鸭子类型 类的约束 super的深度剖析