Git是来管理数据的,也存储数据,所以可以说也是一个数据库,一个特殊的数据库,不同于RDBMS和NoSQL的数据库,一种索引数据可以快速查找数据变化的数据库。这节我们学习Git的对象存储方式。
Git为了快速查找数据,将数据添加一个header封装为数据对象,然后进行Hash,将此Hash值当作对象名字,以后根据此Hash值变可找到数据。具体的实现方式为:Hash值的前2位是文件的目录名字,后面的值为文件名。由于进行Hash,一旦文件内容改变,其对应的Hahs值就会变化,因而很适合变化的数据。
注意,本篇使用指针这个术语指代对象的Hash值。
Git总共有四类对象:
1 blob对象,就是存真正数据的对象。这种对象的SHA-1 Hash值只跟内容有关,跟文件名,文件模式,Hash时的时间没有关系。