一.集中式版本控制
本地客户端保存文件的当前状态,远程服务器端保存文件的多个版本。例如SVN。但是当远程服务器端发生宕机时,文件版本库会丢失,这称为单点故障。
集中式版本控制系统以文件变更列表的方式存储文件信息,保存了原始文件和文件的每一次变化。
二.分布式版本控制
每一个开发人员在本地就可以进行版本控制,本地就有完整的历史,可以避免单点故障。例如GIT。git的版本控制操作在本地就可以完成,不需要联网。git把数据看作是小型文件系统的一组快照,每次提交更新时,git都会对当前的全部文件制作一个快照,并保存这个快照的索引。如果文件 没有修改,git不再重复存储这个文件,而是只保留一个链接指向之前存储的文件,git采用的是快照流的存储方式。