我在git官方网站上看到:
Git与任何其他VCS(包括Subversion和好友)之间的主要区别在于Git对数据的看法。从概念上讲,大多数其他系统将信息存储为基于文件的更改的列表。这些系统(CVS,Subversion,Perforce,Bazaar等)将它们保存为一组文件的信息以及随时间推移对每个文件所做的更改,...(...)
Git不会以这种方式考虑或存储其数据。相反,Git认为其数据更像是小型文件系统的快照集。每次您提交或将项目状态保存在Git中时,它基本上都会拍下当时所有文件的样子,并存储对该快照的引用。(...)
所以我想知道:如果保存快照而不更改,是否意味着如果我更改了一个10Ko文件中的一个字符,将在我的存储库中创建另一个10Ko文件(或Blob)?
什么是引擎盖下的斑点?文件本身?压缩了吗?我的文件中的任何小变化都会大大增加存储库吗?
据我了解,我会在您提出意见之前回答您的问题:我知道磁盘空间不再是问题,并且我不必担心复制10Ko,我的问题只是为了满足我的好奇心。
好的,Git的blob数据和diff信息提供了一半的信息。但是,它是否以任何方式进行了压缩和/或空间优化?
(快速而无礼的回答)
包装您的仓库时,它会被压缩。据我所知,他有时会反转diff,以便存储的纯文本版本是最新版本。而差异与较旧的差异。这样可以更快地访问最新更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句