VCS —— VerSion Control System
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
- 记录文件的所有历史变化
- 随时可恢复到任何一个历史状态
- 多人协作开发或修改
- 错误恢复
- 多功能并行开发
版本控制系统基本概念:
- repository -- 存放所有文件及其历史信息
- checkout -- 取出或切换到指定版本的文件
- version -- 记录标识一个版本(编号或其他代码)
- tag -- 记录标识一个主要版本(例如1.0、2.0、3.0)
版本控制系统分类:
- 本地版本控制系统(Local VCS)
- 集中化版本控制系统(Centralized VCS)
- 分布式版本控制系统(Distributed VCS)
本地版本控制系统(LVCS):
举例:
RCS(Revision Control System)
优点:
- 简单、很多系统中都内置
- 适合管理文本文件
- (如配置文件、文章、信件、简单的文档等等)
- 只适合管理少量文件,不支持基于项目的管理
- 支持的文件类型较单一
- 不支持网络,无法实现多人协作
集中化版本控制系统(CVCS):
举例:
- CVS(Concurrent Version System)
- Subversion
优点:
- 适合多人团队协作开发
- 代码集中化管理
- 单点故障
- 必须连网工作,无法单机本地工作
分布式版 本控制系统(DVCS):
举例:
- Git(现时最出名)
- Mercurial
优点:
- 适合多人团队协作开发
- 代码集中化管理
- 可以离线工作
- 每个计算机都是一个完整仓库
- 单点故障
- 必须连网工作,无法单机本地工作