第二章 版本和版本管理
⇦上一章 - 首页🏠 - 下一章⇨
Git 作为版本管理系统,可以用它管理版本——好像啥都都说了,又好像啥都没说😄
版本是什么
举个例子,张三在写一篇文档,12月05日完成初稿,06日又增添了一些内容,07日又修改了一些内容。张三的这篇文档有以下一些版本:
- 初稿版 (12.05的版本)
- 第一次修订版 (12.06的版本)
- 第二次修订版 (12.07的版本)
如果他要继续修改,就会继续产生新的版本。版本可以看作文档在某个时刻的存档(或者叫「快照」)。
版本管理系统
多数时候,张三只需要使用最新的版本就行了。但是,还可能有其他一些需求,比如:
- 某天觉得前面被修改的内容还不错,想要恢复旧版本
- 想查看某个版本具体改了哪些内容
这就需要我们把每版的改动变化记录下来才行。而版本管理系统 (VCS, Version Control System) 就是专门来做这类事情的,它可以
- 记录每次修改的具体内容
- 记录每次修改的元信息:时间,作者,关联的上个版本
- 用于版本的添加、回退、比较、协作等
上一章提到过 VCS 有很多,如 git, hg, BitKeeper 等,我也或多或少用过一些,体会是:
- VSS (Microsoft Visual SourceSafe), 毕业后接触的第一个 VCS,感觉特别不方便,当时的公司不久也就换用 CVS 了,才觉得世界可以更美好
- CVS 比较简单,不过也太简单了,在用上 SVN 之后,再也不愿意用它了
- SVN 还算不错,在工作中也用了相当长时间,其中原子提交相对于 CVS 给代码追踪带来很大进步
- CC (ClearCase) 曾用过一段时间,但感觉从来没搞懂过,也没有再用的兴趣了。至今无法理解的是,居然有人花钱去买这个东西!
- Hg (Mercurial) 玩了两天,没在实际的项目中使用过,但感觉还不错,是我用的第一个分布式的 VCS
- Git 上手稍难点,但上手之后,再也不想用其他的 VCS 了
VCS 适用范围
VCS 主要用于纯文本的版本管理,如 markdown 文档和程序源码,深受软件从业人员喜爱,已成为他们的必须。较小的二进制文档也可以放在 VCS 系统里,但大的二进制不建议直接丢给 VCS 管理。
Why Git
这么多 VCS 中,为什么要选 git 呢,因为它:
- 免费
- 开源,代码可靠安全
- 非常轻量和灵活的分支管理功能
- 流行度最高,方便交流
其实单独某个特点都不算特点,别的软件也可能有,但同时具备四个,唯有 git.
⇦上一章 - 首页🏠 - 下一章⇨