这个问题似乎很难回答,但我正在努力想出将文件内容存储为 blob 而不仅仅是其原始格式(例如文本文件)的明确优势。
通常,blob 用于代替其他媒体存储格式:图像、视频、音频等。git
,至少我认为它是常用的,通常跟踪文本文件的修订和不是多媒体。
正式总结一下:将文件内容存储为 blob(转换为二进制数据)而不是修订的原始格式(例如,将其保留为文本)有什么优势?
最佳答案
“Blob”仅表示字节序列。 Git 中的 blob 将包含与文件完全相同的数据,只是 blob 存储在 Git 对象数据库中,而文件存储在文件系统中。
所以格式上没有区别,唯一的区别是它们的存储方式。
例如,如果您将图像 hello.jpg
添加到您的存储库,然后提交它,您将拥有相同数据的两个副本:
您将在磁盘上有一个名为
hello.jpg
的文件,其中包含 JPEG 数据,您的 Git 对象数据库中将有一个blob,以其内容的哈希值命名,其中包含相同格式的完全相同 JPEG 数据.
数据库可以使用一些奇特的技巧来有效地存储数据,包括压缩和使用增量,但最终它仍然存储与原始文件中完全相同的数据。
文本文件也不异常(exception)。 “文本”只是一种特殊类型的数据,您可以将其存储在二进制文件中。
关于git - 为什么 git 将文件内容存储为 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48959416/