Renhua's Blog

Stay Hungry. Stay Foolish

0%

Git-简介

简介

Git 作为分布式版本管理系统的鼻祖,是目前主流的版本管理方案。

什么是版本管理?

类似于毕业论文,为了避免删除的部分后面还会再用到,每次修改前,都会先另存为一份论文,再进行修改。经过 n 次修改后,就会变成下面这样。

这就是最简单的版本管理,缺点也显而易见:

  1. 版本间具体修改了啥不清楚。
  2. 基本无法支持多人合作。
  3. n 多个文件占用空间还不敢删除。

版本管理从如此简陋的状态发展到现在已经非常成熟,目前有两大主流的方案:

  1. 分布式版本管理系统:Git
  2. 集中式版本管理系统:SVN

Git 作为后起之秀,从理念和设计上都完胜 SVN。

Git vs SVN

对比 Git 和 SVN 就是对比 “分布式版本管理系统” 和 “集中式版本管理系统”。从图中可以清晰看出两个系统的特点。

分布式版本管理系统特点:

  1. 每台设备都有完整的版本库。
  2. 支持离线操作,没有网时依然可以提交版本、查看日志等操作。
  3. 安全!如果作为服务器的设备版本库损坏或丢失,从任何一台设备拷贝一份版本库到服务器就可以继续工作。

集中式版本管理系统特点:

  1. 中央服务器存有完整的版本库,开发者只有版本库的最新版本。
  2. 所有操作都依赖中央服务器,无论是提交版本,还是查看日志,没有网络就无法办公。
  3. 不安全,一旦中央服务器挂掉,所有人都无法办公,数据也无法恢复。

集中式版本管理系统就像中央集权,所有权利都集中在中央手中,地方无论要做什么事情都要先跟中央申请。

分布式版本管理系统就像现在的各地政府,地方的事情由地方政府负责处理,每个地方政府定时跟中央汇报下就行了。

由此可见,分布式版本管理系统在设计上就优于集中式版本管理系统,除此之外,Git 在分支管理和并行开发上也是完胜 SVN ,这部分后面会讲到。