**Software Configuration Mgmt(SCM)**软件配置管理
·SCM的任务是追踪与控制软件中的变化
·SCM实际任务是版本控制和建立基线
**Software Configuration Items (SCI)**软件配置项
·软件配置项是软件配置管理的基本单位,任何需要管理的要素都是软件配置项(源代码、数据、文档、软硬件、环境等)
Baselines基线:
·基线是在某时间点上,通过评审和认可后的版本,作为后续变化的基点
Git(分布式版本控制系统)
·Git as a SCM tool,用于管理软件开发过程中变更
Git repository·包含三部分
- .git directory -存储所有版本控制数据的数据库
- Working directory -本地文件系统
- Staging area(集结待命地区)-在内存
文件的三个状态
1.Modified (the file in working directory is different from the one in git repository, but is not in staging area)
2.Staged已暂存 (the file is modified and has been added into the staging area)
3. Committed (the file keeps same in working directory and git directory) Object graph in Git
·Git的所有操作都是在一个图数据库上进行
·从另一台机器/服务器复制git项目意味着复制整个对象图·对象图是一个有向无环图(DAG),是Git项目的历史记录 Commits: nodes in Object Graph
·不重复保存各版本中没有发生变化的文件 ·每个文件的每个版本只保存一次,多个提交可共享副本
Branch and Merge
分支是在版本控制下对对象的复制,以便修改可以沿两个分支平行进行