Git-理论篇-设计理念及相关概念

版权声明:本文为博主原创文章,未经博主允许不得转载;如有问题还请留言,随时沟通。 https://blog.csdn.net/MikeLC7/article/details/75133205

初步接触Git时,是因为它的分布式特性,在深入了解之后Git给我得印象如果用一个单词来形容的话那就是 smart;
反观之前所接触的版本控制系统,Git拥有无可比拟的存在的必要性。

Git相比较其他版本控制系统最大的优势无异于:
1、底层文件存储系统
2、分布式的特性

1、底层文件存储系统

Git通过自身的以文件快照实现的文件存储系统为版本管理提供了Branch(分支)的支持。
具体相关的信息,请参考文章:
http://blog.csdn.net/mikelc7/article/details/75635603
该文章叙述较为详细,本文不再过多赘述。

2、分布式特性

坊间传言,God Linus一直痛恨CVS和SVN的集中式管理。

什么是集中式版本管理系统?

1)整个管理系统中需要一台设备来做为整个版本管理系统的核心控制单元,也就是中版本库。其他终端与中心代码库以C/S的架构来进行交互。
2)同时也就要求终端在与中心版本库交互时必须有网络支持。
3)各终端在进行代码交互时,只能通过在中心代码库上的合并版本来实现。

示例图

这里写图片描述

什么是分布式版本管理系统?

1)“去中心化”:没有所谓的中心代码库,系统中的每个终端都是有独立的版本库(本地版本库),每个终端可以单独的进行交互。
2)因为本地版本库的关系,终端可以独立的进行完整的版本控制管理。 (本地版本库管理不需要网络支持,仅在本地版本库和中心版本库同步时需要网络支持)
3)即使分布式实际使用中也有中心版本库集中进行代码管理,但是也给各终端的本地版本库的操作提供了更多的可能性:
除了独立完成本地库的版本管理之外,不同终端的版本库可以独立的进行交互。

示意图

这里写图片描述

在实际使用中,分布式版本管理系统我们也需要一个中心版本库,这样能更方便安全得进行统一版本交互。
方便:多人同时参与项目并且同时有多个项目组进行独立版本迭代时,有一个统一的版本交互入口(中心库),更明确。
安全:因为每台终端都有自己的版本库,也就是有若干个副本备份,在某个库遭遇不可修复的损失后,可以快速方便的克隆恢复已有库的版本。

.

也就是说,Git所谓的“去中心化”并不是完全抛弃掉中心版本库,而是将对中心版本库的依赖降到最低。

.

综上所述,分布式管理带来了版本管理的灵活快捷,并最低程度的依赖中心版本库;且加上Git的文件快照存储系统实现的Branch(分支),将上述的灵活快捷的优势指数倍的放大。

猜你喜欢

转载自blog.csdn.net/MikeLC7/article/details/75133205