zf-fe

01-集中式对比分布式

★Git是什么?

Git -> 分布式版本控制系统

拆开来看:「分布式」+「版本控制系统」

什么叫「版本控制系统」?

如何回退到上一次修改的? -> 这就需要版本控制了……

所以啥叫版本控制系统呢?

开发中我们把每一次的修改都有效的进行记录(如何记录?——记录成一个版本即可),后期如果需要回退到原有的某个版本,或者是用当前的和某一个版本进行比较等,都可以有效的进行管理 -> 这就是版本控制系统诞生的意义

一个人开发需要版本回退,多人开发更需要版本回退 -> 不然,手动备份,就太low了,而且这还非常容易出问题,你想想,张三备份了一份,李四又备份了一份,大家更改了代码,然后张三和李四又备份了一份 -> 程序员可不是在做体力活呀! -> 动用你的智慧看看市场上是否存在版本控制的工具,如果不存在,那么自己搞一个工具出来……

★SVN vs Git

真实项目开发中,常用的版本控制系统一般只有两个:

◇区别

分布式版本控制系统的特点(相较于集中式来说) -> 这一点在团队开发中才会体现到

集中式(如SVN) -> 需要一个中央服务器 -> 假如有一客户端A,客户端每写完一个版本,就得把代码push到中央服务器,如果要回退得从中央服务器拉取代码,然后覆盖本地版本代码 -> 完成这么一个过程「必须连接中央服务器」+「必须连网」 -> 总之,本地保存的是一份开发环境下的代码,而所有的历史版本代码则在中央服务器里边 -> 不管单人开发还是多人开发都是如此…… -> 想想你上飞机了,笔记本无法连网,而老板打电话过来说,你上飞机前提交的代码有bug,可现在你在飞机上了,你无法让版本回退到上一个版本了

分布式(如Git) -> 每个开发者的本地客户端都是一个完整的仓库,都记录着历史版本信息 -> 不需要连网,也能生成版本记录,也可快速回退到某个版本 -> 但如果是多人开发,那么就需要搞个「中央服务器」了 -> 假设有A、B两位开发者,双方都需要看各自的代码,那么AB都得向「中央服务器」push代码,然后各自在本地两位 pull 代码

对了,SVN是按文件来传输的,而Git则是按数据源(文件流)来实现文件传输的,所以Git要比SVN快得多

还有,Git 是 Linus Torvalds 在2005年为 Linux 内核开发而创建的,其他内核开发人员也参与了它的初始开发。自2005年以来,它的维护者是 Junio hamo,所以说Git中的命令大部分是Linux命令

➹:Svn和Git的一次详细对比 - ic翼 - 开发工具 - 掘金

➹:Git - Wikipedia

➹:为什么要用git而不是svn - 灵聚 - 博客园

➹:svn、git的区别,优缺点,使用范围 - 简书

➹:SVN就是这么简单 - 知乎

★小结