标签:const 控制 central 说明 style 拷贝 inf hot modified
一。
传统软件开发模型
2个基本模型
线性过程
迭代过程
扩展模型
瀑布模型
增量模型
V字模型
原型过程
螺旋模型
敏捷开发(Agile Development):通过快速迭代和小规模的持续改进,以快速适应变化
二。
Software Configuration Management(SCM)---软件配置管理:追踪和控制软件的变化
软件配置项(SCI):软件中发生变化的基本单元(e.g 文件)
基线(baseline):软件持续变化过程中的稳定时刻(e.g 对外发布的版本)
CMDB(配置管理数据库):存储软件的各配置项随时间发生变化的信息+基线
Versioning :版本控制
版本:为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”。
术语介绍:
Repository:仓库,即SCM中的CMDB
Working copy:工作拷贝,在开发者本地机器上的一份工作拷贝
File 文件,一个独立的配置项
Version or revision 版本,在某个特定时间点的所有文件的共同状态
Change or diff:变化,即code churn ,两个版本之间的差异
Head:程序员正在其上工作的版本
VCS(Version Control System)
Local VCS(本地VCS,仓库存储在开发者本地机器上,无法共享和协作)
Centralized VCS(集中式VCS,仓库存储于独立的服务器,支持多开发者之间的协作)
Distrubuted VCS(分布式VCS,仓库存储于独立的服务器+每个开发者的本地机器)
Git介绍(作为版本控制工具)
具体使用的操作请参看git官网说明(Pro Git)
https://git-scm.com/book/zh/v2
git的本地仓库有3个空间,分为是 workspace,staging,Local repository
工作目录(worksapce):本地文件系统
暂存区(staging):隔离工作目录和Git仓库
.git(本地的git仓库):本地的CMDB
文件有3种状态
已修改(Modified)
已暂存(Staged)
已提交(Commited)
Git用一个树节点表示一次提交,树内有指向具体文件存储的指针,与之前的commit中未发生变化的文件,无需重复存储
传统VCS存储版本之间的变化,用行存储
Git存储发生的变化的文件(不是代码行),不变化的文件不重复存储
原图解释:
当文件没有发生变化时,则后续多个版本始终指向同一个文件
当文件变化之后,存储2份不同的文件,2个版本指向不同的文件
分支及其合并
git checkout -b iss53 新建分支iss53,并切换到iss53分支
git branch iss53 新建分支iss53
git checkout iss53 切换到分支iss53
git merge hotfix 将分支hotfix合并到当前分支
git brach -d hotfix 删除分支hotfix,合并后可以删除
如果说一个分支的另一个分支的快进,如:
那么可以直接合并,但是如果要合并的2个分支之间不是直接祖先关系
Git 会使用两个分支的末端所指的快照(C4 和 C5)以及这两个分支的工作祖先(C2),做一个简单的三方合并。
如果在合并中入到冲突,即不同的分支对同一个文件做了不同的修改,git会停止合并,向你提醒冲突的文件。
软件构造复习内容(2)--Process and Tools of Software Construction
标签:const 控制 central 说明 style 拷贝 inf hot modified
原文地址:https://www.cnblogs.com/guiququ/p/13176107.html