在存储文件的多个版本时,Git 如何实现存储效率?



Git 将文件的每个版本存储在一个新对象中。在存储文件的多个版本时,此数据模型的存储效率不是很高。Git 是如何实现存储效率的?

Git 通过两种方式提高存储效率:

  1. 将所有内容存储在其哈希下具有完美重复数据删除的效果:您一遍又一遍地使用相同的文件/树?嗯,不,它只有一个哈希,所以只保留一个副本。

  2. 将旧版本存储为新版本的差异。因此,旧版本文件 blob 是它引用的较新版本的差异。Blob 仍存储在旧版本的哈希下,从而保证通过解析差异重新构造的数据仍与曾经存储的数据相同。

所有这些对于更高层的 git 都是完全透明的,唯一可见的效果是提高效率。

最新更新