版本控制系统技术演进史,从SCCS到Git(18)

技术实现

Git是分布式VCS , 无需集中式的中央存储卡 , 就可以正常工作 。 在Git中所有副本都创建为相等 , 即便是远程Git服务上也是是等价的副本 。 这是与第二代VCS最明显得差异 , 第二代集中式的版本管理 , 必须要依靠中央服务器来提供用户检入和检出 。 而在Git中开发人员可以本地任意开发 , 即使连不到远程库也不受任何影响 , 只需在网络通畅时候 , 再将变化推送服务器即可 。 开发人员可以脱机在本地工作 , 直到准备与他人共享他们的工作为止 。 此时 , 可以将更改推送到其他存储库以进行检查 , 测试或部署 。

Blob对象

添加文件以使用Git进行跟踪时 , Git使用zlib压缩算法对其进行压缩 。 使用SHA-1哈希函数对结果进行哈希处理 。 这将产生一个唯一的哈希值 , 该值对应于该文件中的内容 。 Git将其存储在位于隐藏的.git/objects文件夹中的对象数据库中 。 文件的名称为生成的哈希值 , 内容为压缩的内容 。 这些对象文件称为Blob , 每次将新文件添加到存储库时会创建Blob对象 。

推荐阅读