Chapter 2 Process and Tools of Software Construction
一、SCM(软件配置管理)和VCS(版本控制器)
1.SCM
-软件配置管理:追踪和控制软件的变化
-软件配置项(SCI):软件中发生变化的基本单元(如:文件)
-基线:软件持续变化过程中的“稳定时刻”(如:对外发布版本)
-配置管理数据库(SMDB):存储各配置项随时间变化的信息+基线
2.VCS
-版本:为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”
-Repository:于SCM中的CMDB
-Working copy: 在开发者本地机器上的一份项目拷贝
-Change or diff: Code Churn,两个版本间的差异
-File: 项目中的单个文件
-Version or Revision:某时间节点项目目录的记录
-Head:程序员正在其上工作的版本
3.版本控制原因
对个人:
-回滚上一版本
-比较两版本差异
-备份软件版本历史
-获取备份
-合并
对团队:
-在多个开发者间共享、协作
-记录每个开发者动作,便于“审计”
4.VCS分类
-本地:仓库存储于开发者本地机器,无法共享和协作
-集中式:仓库存储于独立的服务器,支持多开发者之间的协作
-分布式:仓库存储于独立服务器+本地机器
二、git / github
1.git结构
-.git directory(版本库):本地CMDB
-staging area(暂存区):在内存中,隔离作用
-working directory(工作区):本地文件系统
2.git工作原理、基本指令
-创建版本库: $git init
-暂存:git add
-提交到当前master分支: git commit -m “...”
修改 -> 暂存 -> 提交
3.github
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub