【git】—集中式与分布式版本控制系统

【前言】

           大家都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了,之前的linux代码是由Linus本人通过手工方式合并代码,后来为了切合Linux的开源精神,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之后,LInux系统的源码已经由Git管理了! 见识到了大牛了吧!!

【正文】

          【集中式】

           常见的集中式版本控制系统:CVS(最早、开源、免费),SVN(开源、免费,目前用的最多),VSS(集成在Visual studio中)…

           工作流程:

                   我们比较熟悉的SVN是集中式的版本控制系统,回想一下在使用svn时,每次干活之前,需要先从中央服务器(服务端)取出最新的版本,然后开始工作,干完活了,工作完后推送给中央服务器。此时的中央服务器就好比是一个图书馆,如果你要修改一本书,需要先从图书馆借出来,然后回到自己家修改,改完之后,需要在送回到图书馆。

           分布简图:

          

            特点:   

                       有一个单一的集中管理的服务器,保存所有文件的修订版本,所有代码库。

                       对网络的依赖性强,必须联网才能工作,上传速度受网络状况、带宽影响。

                       客户端记录文件内容的具体差异,每次记录有哪些文件做了更新,以及更新了哪些行的什么内容。

           缺点:  中央服务器的单点故障。 如果中央服务器发生宕机,所有客户端将无法提交更新、还原、对比等,也就无法协同工作。如果磁盘发生故障,信息尚无备份,还会有数据丢失的风险。

          【分布式】   

              常见的分布式版本控制系统:git(免费、开源)、 Mercurial(轻量级)  、Monotone(免费)…

              工作流程:分布式版本控制系统是没有“中央服务器”,每个人的电脑上都是一个完整的版本库,工作的时候,不再需要联网。开始工作前,在客户端克隆出完整的代码仓库,然后就可以在家、在公交车等等随心所欲地修改代码并提交了,提交到本地电脑,等到有网的时候就可以一次性地将本地仓库推送到远端仓库(临时中心服务器)中,这样一来,每个人都可以独立进行改动资料,并且所有的改动都是在完整资料信息的环境下进行的。

              分布简图:

              

                特点:

                      本地客户机进行操作,离线工作,快速。

                      安全性高,每个人电脑里都有完整的版本库,一个人的电脑换了复制其他人的一份就可以了。

                      原子性提交,提交不会被打断(git)。

                      工作模式非常灵活(传统的集中式工作流 + 特殊工作流 + 特殊工作流和集中式工作流的组合)。

              缺点:  缺少权限管理、命令复杂混乱

          【集中式vs分布式】  

                              

  【总结】

           分布式版本控制系统的出现解决了集中式需要联网操作的弊端,纵向来看,版本控制系统的变更根据使用者需求的变化而革新,横向来看,各有利弊,对应于svn和git来说,用过才会对他们的影响更加深刻,毕竟适合的才是最好的!     

           PS:感谢您的阅读,不足之处多多交流(邮箱:1510079209@qq.com)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的大白啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值