版本控制系统一般可以分成三大类: 第一 : 本地版本控制系统 。 第二: 集中化版本控制系统。 第三: 分布式版本控制系统。
本地版本控制系统
本地化版本控制系统,解决了什么问题? 比如我看到一个文件的名字。 readme.v3.text ,可以看出 v3 这个文件是第三个版本,之前应该有个 版本1和版本2。如果把不同的版本文件放到一块,文件多了,就会乱糟糟的。不好查找也不好管理。
其实修改一个文件,通常是修改了文件的一部分内容。只用想办法保存一下修改了什么。比如删除了第二行,第三行修改了一个词 ... 。补丁,就是记录了文件修改了什么。通过补丁文件可以计算出文件的修改。
本地版本系统 - 文件的的修改信息,都存储在本地的电脑上。只能在本地使用。
集中化的版本控制系统
试想一下,如果一个比较大的项目,有多人一起开发。多人对同一个文件进行操作,这个种情况,几乎是不可避免。如果都用本地版本控制系统,多人项目是无法同时进行的。
集中化版本控制系统 - 有一个管理中心,大家开发前,先同步一下服务器的文件,这样就可以看到其他人的工作进度。修改特定文件后,有提交权限,提交给服务器,服务器就接收这次提交,然后又其他人同步文件的时候,就可以看到你的提交信息。但是有缺点,如果中心服务器出现问题,谁都无法提交。中心服务器出现文件,项目就不好恢复。
分布式版本控制系统
分布式版本控制系统 - 客户端是保存了整个项目的历史记录。想比较 本地的版本控制系统,是可以进行远程操作的,比如你可以把修改的内容,提交到远程的主仓库。这样其他人只用同步这个主仓库,就可以看到你的提交信息。