Chapter: 开始了解Git

  1. 先谈谈版本控制的一些事
  2. Git诞生背后的一些故事
  3. 版本控制:集中式VS分布式
  4. Git的思想和基本工作原理
  5. Git在Windows下的安装
    前面提到,Linus一直痛恨CVS及SVN这些集中式的版本控制系统,为什么呢?Git是分布式版本控制系统,那么集中式和分布式版本控制系统又有什么区别呢?

先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。

CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。

除了免费的外,还有收费的集中式版本控制系统,比如IBM的ClearCase(以前是Rational公司的,被IBM收购了),特点是安装比Windows还大,运行比蜗牛还慢,能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗,或者人傻钱多。

微软自己也有一个集中式版本控制系统叫VSS,集成在Visual Studio中。由于其反人类的设计,连微软自己都不好意思用了。

分布式版本控制系统除了Git以及促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!

分布式和集中式版本控制的区别相关推荐

  1. 集中式版本控制 VS 分布式版本控制

      目前企业使用的版本控制系统基本上都是 Git 和 SVN.其中 SVN 是集中式的版本控制系统,而 Git 是分布式的版本控制系统.那么它们之间有什么区别呢? 集中式版本控制系统   集中式版本控 ...

  2. 集中式版本控制与分布式版本控制

    文章目录 集中式版本控制 分布式版本控制 引用 集中式版本控制 所有的版本数据都存在服务器上,用户的本地设备就只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或 ...

  3. 视频讲解:分布式dtu配电终端SDAF-8608/分布式dtu集中式dtu区别

    视频讲解:分布式dtu配电终端SDAF-8608/分布式dtu集中式dtu区别 SDAF-8608智能分布式配电终端具备采集三相电流.三相电压.零序电流.零序电压的能力,满足计算有功功率.无功功率,功 ...

  4. 集中式版本控制与分布式版本控制——Git 学习笔记01

    什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件"另存为"一个文 ...

  5. Git学习笔记(集中式版本控制工具与分布式版本控制工具)

    集中式版本控制工具 集中式版本控制工具是指所有的项目版本都存储在唯一的服务器中,而团队中使用者本地只保存有最新版本.因此,当服务器宕机或故障时,服务器中文件如果损坏或缺失,使用者本地只有最新版本,因此 ...

  6. 分布式,集中式,云原生存储技术

    分布式,集中式,云原生存储技术 分布式存储软件是真正的统一存储,实现同一套存储系统为上层应用提供块.文件和对象三种数据服务,满足业务对结构化和非结构化数据的存放需求,内置数据保护功能,例如:备份.容灾 ...

  7. 【部署】SpringBoot 打包部署/共享依赖包(分布式开发集中式部署微服务)精简jar包

    精简jar包 将项目跟第三方依赖分开 [部署]SpringBoot 打包部署/共享依赖包(分布式开发集中式部署微服务) 1 修改pom <build><plugins>< ...

  8. 集群、分布式、集中式、伪分布式的概念与区别

    1. 集中式 将项目等部署到同一台机器上,对机器性能要求比较高,一般会用多台机器备份,否则,如果机器出现死机等状况,整个项目将不能运行. eg:就好比你要盖一座房子,你房子就给一个人盖,如果这个人生病 ...

  9. 分布式和集群的概念区别

    一.分布式: 可以将分布式理解为,将某一个应用程序,拆分成多个模块来部署,各个模块负责不同的功能: 分布式的优点是细化了应用程序的功能模块,同时也减轻了一个完整的应用程序部署在一台服务器上的负担,用了 ...

最新文章

  1. Spring中Quartz的配置
  2. js和css和img,Node.js压缩web项目中的js,css和图片
  3. 十分钟上线-基于函数计算开发 Restful web api asp.net core web app
  4. c++ getline 读不到东西_C++ getline()函数问题
  5. 深入理解计算机系统读书笔记
  6. HTML块级元素/块标签/块元素
  7. JSF中run项目时候Tomcat8启动不了的一种方法
  8. 使用pinyin4j将中文转换为拼音
  9. APP图标右上角数字的实现
  10. LightOj 1088 - Points in Segments (二分枚举)
  11. macbook m1 打印机不显示打印队列的解决方法
  12. 百度K站“漏洞”被发现,如何预防被百度人工K站
  13. 修复WiFi网卡驱动异常导致WiFi图标消失报错代码(56)
  14. Android自定义按钮样式
  15. python,分析网页,使用 bs4和requests 爬取网页指定图片
  16. MindManager Mac苹果版本教程激活码序列号秘钥下载详情
  17. 一个并不“艰难”的决定—一个程序员的成长史(3)
  18. NFC的读写卡模式——前台调度系统
  19. 电商图片采集-免费批量电商图片采集软件
  20. [转载]WEB中实时时间的显示

热门文章

  1. 【DSP数字信号处理学习笔记】—— 详细推导DFT的快速实现算法:FFT 基于库利-图基算法的实现
  2. 是利用计算机技术实现,计算机技术在智慧交通建设中的应用
  3. C语言基础:输入两个分数,输出它们的和以及差。(以分数形式)
  4. 第十六届北京师范大学程序设计竞赛决赛
  5. 4-20mA转RS-485,Modbus数据采集模块 WJ121
  6. 【数据挖掘之关联规则实战】关联规则智能推荐算法
  7. 开发im即时通讯如何用Netty实现心跳机制、断线重连机制
  8. 【二】数据结构之List
  9. 使用R进行倾向得分匹配(PSM)
  10. PAT乙级1005,用C语言进行编程,继续卡拉兹猜想