1. 初见-版本控制简介
- 释义:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统;通俗地说就是记录自己工作以及学习情况,并且可对其进行修改*
1. 1初见-版本控制系统分类
本地版本控制系统
通常人们都是复制一份自己的项目目录当作副本进行修改,并且会备注时间和说明,这一点很方便,但是也容易出错。
所以出现了本地版本控制系统,最流行的一种RCS,它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化),通过应用不同的补丁,可以得到想要的版本的文件内容。
集中化的版本控制系统
本地版本控制系统在工作时效率太低,无法让多个开发者协同工作,于是集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)出现了,这种系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,不同的开发者都可以通过客户端连接到服务器,取出自己需要做修改的文件,可以同时工作,每个人都可以在服务器上看到总项目的进度,管理员也可以轻松地掌控不同开发者的权限进行明确分工,比较流行的有CVS、Subversion以及Perforce等。
但是,缺点也很明显,保存位置单一,如果服务器故障,中心数据库文件损失,项目的变更历史也消失了,无法回到之前的版本。
分布式版本控制系统
于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。常见的有:Git、Mercurial、Bazaar 以及 Darcs 等。它的特点是项目的存储位置灵活,因为每个开发者都可以把服务器的代码仓库完整地克隆下来到自己的客户端,包括完整的历史修改记录。就算服务器发生故障,可以用其他的镜像的代码仓库进行恢复,每一次克隆操作实际上就是一次完整的代码仓库备份。许多这类系统都可以指定和若干不同的远端