00-版本控制 概念和术语

版本控制 概念

  • 版本控制
  • 专业术语
    • 版本控制系统 (VCS) /源代码管理器 (SCM):
    • 提交 Commit :
    • 仓库(Repository存储库 / 简称:repo库)
    • 工作目录 / 工作区(Working Directory)
    • SHA :
    • 检出 Checkout :
    • 暂存区 / 暂存索引 / 索引(Staging Area / Staging Index 暂存索引/ Index索引)
    • 分支 Branch
    • 合并 merging
    • 合并冲突 merge confilcts

外部实用连接:
Git教程:https://classroom.udacity.com/courses/ud123
Git常用命令:https://www.softwhy.com/article-8498-1.html
Git 2.13发行说明:https://github.com/git/git/blob/v2.13.0/Documentation/RelNotes/2.13.0.txt#L176-L177

版本控制

版本控制系统的主要目的是帮助你保留项目的详细历史记录,并且能够回到不同的版本上进行工作。

版本控制系统模型包括两大主要类型:

  • 集中式模型 Centralized-所有用户都连接到一个中央的主仓库(master repository)
  • 分布式模型 Distributed-每个用户都在自己的计算机上拥有完整的仓库

三大最热门的版本控制系统:Git / Subversion / Mercurial

专业术语

版本控制系统 (VCS) /源代码管理器 (SCM):

版本控制系统(简称 VCS,version control system)是一个管理源代码不同版本的工具。

VCS 的作用包括:将文件或整个项目还原到之前的状态;查看一段时间内所做的更改;查看是谁做了最后修改而引发问题;引发问题的具体内容以及时间等。

源代码管理器(简称 SCM,source code manager)是版本控制系统的另一个名称。

Git 是一个 SCM(因此也是 VCS!)。

Git 网站的 URL 是 https://git-scm.com/ (注意它的域名中直接包含“SCM”!)。

提交 Commit :

Git 的数据就像一组迷你文件系统的快照(snapshot)。每次在 Git 中提交或保存项目状态时(commit(在 Git 中保持项目状态)), Git 会立刻对所有文件进行拍照,并存储这组快照的索引(保存点,它会保存项目的文件和关于文件的所有信息)。
你在 Git 中的所有操作都是帮助你进行 commit,因此 commit 是 Git 中的基本单位。

仓库(Repository存储库 / 简称:repo库)

仓库是一个包含项目内容以及几个文件(在 Mac OS X 上默认地处于隐藏状态)的目录,用来与 Git 进行通信。仓库既可存在于本地计算机上,也可作为另一台计算机的远程副本。仓库是由 commit 构成的。提交都保存在仓库区。

工作目录 / 工作区(Working Directory)

工作目录是你在计算机的文件系统中看到的文件。当你在代码编辑器中打开项目文件时,你是在工作目录中处理文件。
工作目录中的文件与仓库中保存(提交中commit)的文件不同。
使用 Git 时,工作目录也不同于当前工作目录命令行的概念,当前工作目录current working directory是你的shell正在“查看”的目录。

SHA :

SHA 是每次提交commit的 ID 编号。以下是 commit 的 SHA 示例:e2adf8ae3e2e4ed40add75cc44cf9d0a869afeb6。
它是一个长 40 个字符的字符串(由 0–9 和 a–f 组成),并根据 Git 中的文件或目录结构的内容计算得出。“SHA”是“SHA散列”的简写。SHA 的全称是"Secure Hash Algorithm"(安全哈希算法)。
用于生成和引用提交

检出 Checkout :

检出:仓库中的内容被复制到工作目录。文件、提交、分支等都可从仓库检出。
(1).切换或者新建分支。
(2).将暂存区或者指定commit内容覆盖到工作区。

暂存区 / 暂存索引 / 索引(Staging Area / Staging Index 暂存索引/ Index索引)

暂存区、暂存索引或索引:Git 目录中的一个文件,用于存储下一次提交commit的相关信息,相当于 Git 处理下一次提交的准备区域。暂存区中的文件将被添加进仓库。

分支 Branch

学习链接: 分支实验室.

分支是从主开发流程中分支出来的新的开发流程。这种分支开发流程可以在不更改主流程的情况下继续延伸下去。
分支:当创造出一个新的开发线,并从开发主线分离后,就产生了一个分支。这条开发线可在不影响主线的同时继续工作。就像游戏中的进度保存点,你可以把分支想象成游戏中决定尝试冒险之前点击保存点的位置,若冒险失败,就可以回到保存点。分支功能强大的关键在于,你可以在一个分支上创建保存点,然后切换到不同的分支再次创建保存点。

合并 merging

合并冲突 merge confilcts

你可能感兴趣的:(概念,版本控制)