Linux Kernel
是一个非常大规模的开源软件项目,在该项目 1991 ~ 2002
年维护的早期,所有对于代码的修改都是以补丁(Patches)和归档文件(Archived
File)的形式进行传递。在 2002 年之后,Linux 内核项目开始使用一款称为
BitKeeper
的商业版本管理工具。但是到了 2005 年,Linux
社区与 BitKeeper 商业公司之间的合作关系破裂,促使 Linux 开源社区以及
Linus Torvalds
本人根据之前的版本管理经验,开发出了全新的分布式版本管理工具 Git。
Git
不会以基于文件修改列表的方式来保存数据,而是以及引用和快照的方式来保存文件的历史信息;即使没有
Git 版本管理服务器的支持,大部份操作也能够在本地正常进行;Git
当中的所有数据存储时都会经过 SHA-1
完整性校验,并且使用一个长度为 40
的散列字符串来存储和引用这些数据;Git
当中的所有操作都是在添加数据,因而很难执行不可撤消的任务,也很难让出现在删除数据之后无法找回的场景。