1.软件配置管理:追踪和控制软件的变化
包含代码,数据,文档,程序等等。
2. 有一个版本库,所有版本存在版本库中,随时拿出使用,软件库中的版本都是稳定的
3. 版本号,从前到后,变化逐渐变小x.x.x.x
4. 版本控制工具
·回退
·比较版本差异
·备份版本
·在多个开发者之间共享和协作
·便于审计
·合并
最大优点:可以创建分支,分支相互独立
5. 涉及概念
·仓库:SCM中的CMDB(配置管理控制库)
·工作拷贝:在开发者本地机器上的一份项目拷贝
·文件:一个独立配置项
·版本:在某个特定时间点所有文件的共同状态
·HEAD:程序员正在其上工作的版本
6. 版本控制工具分类(VCS)
(1)本地式的版本控制工具
版本库在本地端,更新也在本机,当前开发者使用。
(2)集中式的版本控制工具
有一个服务器,存储所有版本。
(3)分布式的版本控制工具
版本存在不同机器上
服务器出问题还可以从其他机器恢复。
如何保持版本一致性:在commit时判断是否有其他人更改,如果有,先fetch才能再更改提交
Git(分布式)
1)分为
·服务器(远程版本库)
·本地端的仓库(远程版本库的一个拷贝)
·工作区(程序从版本库中拷贝出进行更改的地方)
·暂存区(已更改为提交的文件)(非真实存在,机器上不存在这个文件夹)
利用标识符,一位为0代表不位于,1位于
2)Git以对象形式存放不同版本。通过指针实现版本回溯。
Git的commit对象有两种方式产生
·commit命令创建新版本 只有一个父节点
·分支的合并 有两个父节点
3)commit对象中包含的内容
·文件根节点的记录
·文件的作者
·提交者
·父节点
与之前commit中未发生变化的文件在新版本终不会重复存储
传统VCS和git对比
传统VCS版本中存储的是变化dert
很难创造分支,获取当前版本要从最初一点点叠加
Git中存储的是文件。
很容易获取当前版本中文件,但是较难获取变化