第三讲—软件构造过程与配置管理

本文只按照老师点出的复习要点来总结课件内容中的知识点。

软件配置管理(SCM)

  • 定义:SCM 是跟踪和控制软件变化的任务。
  • 实践:SCM 的实践包括版本控制和建立基线。
  • 基线:基线是产品属性在某一时间点的约定描述,作为定义变化的基础。
  • 配置项(CI):软件的任何组成部分(源代码、数据、文档、硬件、各种环境)都可能随着软件生命周期的进行而更新。软件配置项(SCI)是 SCM 的基本结构单元。
  • 生命周期:一个配置项(CI)在其生命周期中会经历多个版本。
  • 配置管理数据库(CMDB):存储软件的各配置项随时间发生变化的信息以及基线。
  • 审核:CMDB 用于审计目的,记录谁在什么时间对配置项做了哪些更改。

版本控制系统(VCS)

  • 版本:为软件的任一特定时刻的状态指派一个唯一的编号,作为“身份标识”。
  • 版本控制过程:包括为软件的不同状态分配唯一版本名或版本号。
  • 修订控制:通常用于跟踪电子信息(无论是否为计算机软件)的逐步不同版本。
  • 个人版本控制需求
    • 回滚到过去版本
    • 比较两个不同版本的差异
    • 将完整版本历史推送到另一个位置
    • 从备份位置拉取历史
    • 合并来自同一早期版本分支的版本
  • 团队协作
    • 促进多个开发者之间的沟通和工作共享/合并
    • 记录不同开发者的个性化工作以便于审计
  • 版本控制术语
    • 仓库(Repository):本地或远程存储项目版本的存储位置。
    • 工作拷贝(Working copy):在开发者本地机器上的项目的可编辑副本。
    • 文件(File):项目中的单个文件。
    • 版本/修订(Version or revision):在特定时间点的项目内容记录。
    • 变更/差异(Change or diff):两个版本之间的差异。
    • HEAD:当前版本,指向程序员正在其上工作的版本。
  • 版本控制系统类型
    • 本地 VCS:仓库存储于开发者本地机器,无法共享和协作。
    • 集中式 VCS:仓库存储于独立的服务器,支持多开发者之间的协作。
    • 分布式 VCS:仓库存储于独立的服务器加每个开发者的本地机器。

Git 作为 SCM 工具

  • Git 简介
    • 最初发布于 2005 年。
    • 最初作者是 Linus Torvalds。
    • 用于 Linux 内核的开发。
  • Git 仓库组成
    • .git 目录:本地的 CMDB,存储所有版本控制数据。
    • 工作目录:本地文件系统。
    • 暂存区:隔离工作目录和 Git 仓库。
  • 对象图:Git 使用有向无环图(DAG)来存储项目文件的所有版本和描述这些变化的日志条目。
  • 提交(Commit):对象图中的节点,代表项目的一次完整快照。
  • 分支(Branch):指向特定提交的名称,允许并行修改。
  • 合并(Merge):将两个分支的历史合并在一起。
  • Git 支持协作:通过本地仓库和远程仓库的概念,支持开发者之间的协作。
  • GitHub:一个基于 Web 的 Git 服务器和互联网托管服务,提供所有分布式版本控制和 SCM 功能,并增加其自己的特性,如错误跟踪、功能请求、任务管理和针对每个项目的 wiki。

Git的结构

  • Git仓库:包含三个主要部分

    • .git目录:本地的配置管理数据库(CMDB),存储所有版本控制数据。
    • 工作目录:本地文件系统,开发者可直接编辑文件。
    • 暂存区:内存中的区域,用于隔离工作目录和Git仓库,准备下一次提交。
  • 对象图:Git使用有向无环图(DAG)存储项目文件的所有版本和描述这些变化的日志条目。对象图存储在.git目录中。

Git的工作原理

  • 文件状态:每个文件在Git中可能处于以下三种状态之一:

    • 已修改(Modified):工作目录中的文件与仓库中的文件不同,但尚未暂存。
    • 已暂存(Staged):文件已修改并添加到暂存区,准备提交。
    • 已提交(Committed):工作目录和Git目录中的文件相同,表示当前状态已安全存储在仓库中。
  • 对象图操作:所有Git操作(如clone, add, commit, push, log, merge等)都是对对象图的修改。

  • 提交(Commit):在对象图中是一个节点,也称为项目的版本或修订版。每次提交都是项目文件在特定时间点的完整快照。

  • 分支(Branch):分支是对提交对象的指针,允许从共同的先前版本分叉出来并行修改。

  • 合并(Merge):将两个分支的变更历史合并在一起,创建一个新的共同祖先提交。

Git的基本指令

  • git clone URL local_repository:从远程仓库克隆项目到本地,创建本地仓库的完整对象图。

  • git add:将已修改的文件添加到暂存区,准备下一次提交。

  • git commit:将暂存区的内容提交到本地仓库,创建一个新的快照。

  • git push:将本地仓库的提交推送到远程仓库。

  • git pull:从远程仓库拉取最新的提交并合并到本地仓库。

  • git checkout:切换到指定的分支或恢复工作目录的文件。

  • git branch:查看本地分支列表或创建/删除分支。

  • git merge:将一个分支的更改合并到当前分支。

  • GitHub工作流程

    • 基本过程:commit(提交)、branch(分支)和merge(合并)。
    • 协作过程:fork(分叉)和pull request(拉取请求)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值