版本控制系统可分为两种
1. 集中式版本控制系统(Centralized Version Control System)
特点:所有版本信息都存储在中央服务器上,开发者要从中央服务器拉取代码,修改后还要将修改内容推送回中央服务器
示例:svn
2. 分布式版本控制系统(Distributed Version Control System)
特点:开发者都有自己完整的代码仓库的拷贝,包括完整的版本历史。在本地就可以进行提交、分支、合并等操作。
示例:git
形象地解释分布式版本控制系统
某公司的代码管理系统可以形象地比喻为一个庞大的图书馆,所有业务代码和文件被组织在数不清的书架上,每个书架代表一个分支。这个图书馆还保留着一份主目录(main分支),记录着所有书籍的信息。在这个比喻中,每位开发者好比是图书管理员,他们可以将整个图书馆的内容复制到自己的电脑上,包括所有的书籍和书架。
在这个分布式版本控制系统中,每个开发者独立地在自己的“书房”中进行修改、添加和删除书籍,而这些操作并不会影响其他“书房”的管理员。当开发者完成一些工作(例如修改了书籍)后,他们可以选择将这些更改提交给图书馆。随后,图书馆会更新相应书架上的书籍,使其他管理员能够在需要的时候查看和获取这些修改,实现了书籍(代码)的同步。