2.1 软件配置管理SCM与版本控制系统VCS
2.1.1 SCM
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性,对提交的各个版本进行保存和管理,注明名称、标识符、文件状态、版本、作者、日期等。
- 基本单位:软件配置项(SCI)。任何需要管路的要素,如源代码、数据、文档、软硬件、环境等。
- 基线:在某时间点上,通过评审和认可后的版本,作为后续变化的基点。
- 配置管理数据库(CMDB)
- 检入解封,检出锁死
- 版本:软件某个状态的唯一标识,形如:
2.1.2 VCS
版本控制系统是一个软件,帮助软件开发人员团队工作记录并维持他们完整的工作历史,允许开发者同时工作,不会重写每个人的改变,维持每个版本全部的历史,新功能完成前不将其加入软件。
- 分支和进化图
允许其他成员并行创建另一条线进行操作。
- 管理模式:
(1)本地VCS
(2)集中式VCS(云端交互)
(3)分布式VCS(直接或者云端交互)
- VCS功能
可靠的保留或者还原旧版本,查看历史记录,对多个版本进行比较。而且允许多个程序员共享未完成的工作。
2.2 Git/GitHub
Git是一个软件配置管理工具。
- Git存储库组成:
(1)git目录:存储所有版本控制数据的存储库
(2)工作目录:本地文件系统
(3)暂存区域:内存中 - 文件状态
(1)已修改:工作目录中的文件与git存储库中的文件不同,但不在暂存区域中
(2)分段:文件添加到了暂存区域
(3)已提交 - Git中的状态图
Git的所有操作都是在一个图数据 库上进行 - commit
(1)不重复保存各版本中没有发生变化的文件
(2)每个文件的每个版本只保存一次,多个提交可共享副本
- 版本变化
6. Git上创建分支并合并
7. GitHub:一个面向开源及私有软件项目的托管平台,只支持git 作为唯一的版本库格式进行托管。