有没有办法强制Git将文件版本存储为完整且独立的实体,而不是作为来自上游提交的差异存在的下游提交?
有人会问我为什么要这样做.我想这样做是因为老板告诉我这样做.FWIW,有问题的特定文件是一个过程的产物,其中输入中的一个小变化可能导致文件的重大重组.
Git的对象存储已经做到了,而且它是不可协商的.
Git的对象数据库是面向快照的,单个文件是blobs,目录是tree对象.
通过查看.git/objects或执行操作轻松验证这一点
git rev-list --objects --all
Run Code Online (Sandbox Code Playgroud)
现在,过了一段时间,为了提高效率,对象数据库将被"压缩"(称为打包).这导致存储效率,但不涉及增加增量.
存储deltas由RCS,CVS,Subversion和其他人(SourceSafe?)推广.主要是因为模型可以很容易地转换变更集,因为它们已经是delta形式.现代VCS-es(主要是分布式的)已经从此发展而来,并强调数据完整性.
由于对象数据库的设计,Git是非常稳健,将检测数据的任何毁坏位快照,或整个回购的任何地方.有关Git存储库的加密属性的更多详细信息,请参阅此文章:Linus talk - Git与数据损坏?
在techno babble中:提交历史形成加密强大的merkle树.当提示提交(HEAD)的sha1总和匹配时,它在数学上遵循
是相同的.这是git(和其他共享此设计功能的SCM)的巨大安全功能
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |