一、集中式版本控制
集中式版本控工具:SVN。
特点:都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接 到这台服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的 文件或者提交更新。多年以来,这已经成为版本控制系统的标准做法。 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌握每个开发者的权限, 而且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易。 但是,这么做的缺点是中央服务器的单点故障。如果服务期宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
二、分布式版本控制工具
分布式版本控制工具:Git
特点:客户端提取的不是最新版本的文件快照,而是把代码仓库完整的镜像下来(本地库)。这样任何一处协同工作发生故障,事后都可以用其他客户端的本地仓库进行恢复。 因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。 分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷: 1.服务期断网的情况下也可以进行开发(因为版本控制是在本地进行的) 2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)