Git基本原理
哈希
哈希是一个系列的加密算法,各个不同的哈希算法虽然加强密度不同,但是有以下几个共同点:
- 不管输入的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
- 哈希算法确定,输入数据确定,输出数据能保证不变
- 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
- 哈希算法不可逆
Git底层采用的是SHA-1算法
哈希算法可以被用来验证文件,原理如下图所示:
Git就是靠这种机制来从根本上保证数据完整性的。
保存版本的机制
集中式版本控制工具的文件管理机制
以文件变更列表的方式存储信息。这类系统将它们保存的信息看做是一组基本文件和每个文件随时间逐步累积的差异。(增量式的版本控制)
Git的文件管理机制
Git把数据看作小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git不再重新存储改文件,而是保留了一个链接指向之前存储的文件。所以Git的工作方式可以称作为快照流。
Git文件管理机制细节
- Git的“提交对象”
提交对象及其父对象形成的链条
Git的分支管理机制
分支管理的本质是创建和移动指针
分支的创建
分支的切换