Git---1.什么是版本控制系统(VCS)

1.什么是版本控制系统(VCS)

很多人认为 Git 难以理解的第一个门槛在于:所谓 的「Git 是一个分布式版本控制系统」这句话的具 体含义不够清楚。其实分布式版本控制系统 (Distributed Version Control System DVCS)这个定义并不难,不过一步一步来,我先 告诉你,什么是版本控制系统(Version Control System - VCS)。

2.版本控制:最基本功能

版本控制系统(VCS)最基本的功能是版本控 制。所谓版本控制,意思就是在文件的修改历 程中

保留修改历史,让你可以方便地撤销之前 对文件的修改操作。

最简化的版本控制模型,是大多数主流文本编辑器 都有的「撤销(Undo)」功能:你本来想删除一 个字符,却在按删除键之前不小心选中了全文,结 果一下子整篇文档都被删光了,没关系,按一下 「撤销」(Ctrl + Z 或 ⌘ + Z 或 U 等等,具体和你 的操作系统以及编辑器有关),删掉的文字就都回 来了。这其实是文本编辑器帮你自动保存了之前的 内容,当你按下「撤销」的时候,它就帮你把内容 回退到上一个状态;同理,按一次是会退到上一个 版本,按两次就是回退到上上一个版本。

写程序的时候同样也难免会遇到「写错」的情况, 所以程序的 VCS,当然也会需要版本控制功能,这 样当你发现「昨天有一行代码写错了」,你就不用 凭着记忆把那段代码背出来,而只需要在 VCS 中 选择撤回到昨天的那个版本。

3.主动提交:程序代码和普通文本的区别

VCS 和文本编辑器的撤销功能比起来,有一个很重 要的区别是:程序代码的修改的生命周期非常长。 一次代码的修改,在几天后、几个月后、几年后都有可能需要被翻出来。如果依然采用「每次改动自 动保存」的形式来保留修改历史,将会导致改动历 史非常频繁和无章可循,这样,历史代码的查找、阅读和回退就会很困难了。所以,和文本编辑器的 撤销功能不同,VCS 保存修改历史,使用的是主动 提交改动的机制。

在你写了一段完整的代码(例如修复了一个 bug) 之后,使用 commit 命令把改动和对改动的描述信 息提交,这次改动就被记录到版本历史中了。之后 如果你希望回退到这个版本,就可以从 VCS 的历 史日志中方便地找到它。

4.多人合作的同步需求:中央仓库

代码可以一个人写,但更多的时候会是多个人共同 开发。那么自然地,就需要有一个中央仓库作为代 码的存储中心:所有人的改动都会上传到这里,所 有人都能也都能看到和下载到别人上传的改动。

这样,解决了同步的需求,多个人在不同的机器上 开发同一个程序就成了可能。

版本控制、主动提交、中央仓库这三个要素,共同 构成了版本控制系统(VCS)的核心:开发团队中 的每个人向中央仓库主动提交自己的改动和同步别人的改动,并在需要的时候查看和操作历史版本, 这就是版本控制系统。

5.中央式版本控制系统

最初的版本控制系统,是中央式版本控制系统 (Centralized VCS),也就是前面我讲的这种。 Git 是分布式的版本控制系统(Distributed VCS),它和中央式的区别我在下节说,现在先说 一下中央式版本控制系统的工作模型。

6.工作模型

假设你在一个三人团队,你们计划开发一个软件或 者系统,并决定使用中央式 VCS 来管理代码。于 是:

  • 作为项目的主工程师,你独自一人花两天时间 搭建了项目的框架;
  • 然后,你在公司的服务器(这个服务器可以是 公司内的设备,也可以是你们买的云服务)上 创建了一个中央仓库,并把你的代码提交到了 中央仓库上;
  • 你的两个队友从中央仓库取到了你的初始代 码,从此刻开始,你们三人开始并行开发;
    在之后的开发过程中,你们三人为了工作方 便,总是每人独立负责开发一个功能,在这个 功能开发完成后,这个人就把他的这些新代码提交到中央仓库;
  • 每次当有人把代码提交到中央仓库的时候,另 外两个人就可以选择把这些代码同步到自己的 机器上,保持自己的本地代码总是最新的。
    中央式vcs
    而对于团队中的每个人来说,就会更简单一点:
  • 第一次加入团队时,把中央仓库的代码取下 来;
  • 写完的新功能提交到中央仓库;
  • 同事提交到中央仓库的新代码,及时同步下 来。

这样,一个三人的团队就成功做到了各自在自己的 电脑上开发同一个项目,并且互不影响,就好像你 们三个人是在同一台电脑上操作一样。

这就是中央式 VCS 最基本的工作模型。当然,实 际的开发工作并没有简单到这种程度,因为你时常 会需要处理代码冲突、查看版本历史、回退代码版 本等;另外,Git 属于分布式 VCS,它的概念也比 中央式 VCS 要复杂一些。但这些概念你需要一步 步地理解和吸收,你现在只需要先知道中央式 VCS 的这个基本工作模型,其他的内容我会在后面慢慢 地全部讲清楚。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值