版本控制工具目前有集中式版本控制工具(SVN)和分布式版本控制工具(Git)。

一,集中式版本控制工具

有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

但是通常情况下,使用者下载的是存放内容的最新版本,一旦服务器故障或者损坏,则因为用户端只有最新版本,难以恢复全部版本文件,有丢失记录的风险。

二,分布式版本控制工具

客户端不仅仅是提取最新的文件,而是把代码仓库完整地镜像出来。每一次提取操作,实际上是对代码仓库的完整备份,这样一来,就算服务器故障,每一台客户端内部都存着完整的代码库,可以还原。

分布式的版本控制系统在管理项目时 存放的不是项目版本与版本之间的差异. 它存的是索引( 所需磁盘空间很少 所以每个客户端都可以放下整个项目的历史记录)
分布式的版本控制系统出现之后, 解决了集中式版本控制系统的缺陷:

  1. 断网的情况下也可以进行开发( 因为版本控制是在本地进行的)
  2. 使用 github 进行团队协作, 哪怕 github 挂了 每个客户端保存
    的也 都是整个完整的项目。
  3. SVN存的不是每一个完整的版本,而是存储新版本与旧版本的差异。需要的空间小一些,但是回溯的速度慢。而git每次存储的是整个项目的完整版本,需要更大的硬盘空间,但是git团队对代码做了极致的压缩,最终需要的实际空间比SVN 多不了多少,但是它的回溯速度快得多,无需像SVN那样打补丁。

git学习笔记(1-集中式与分布式版本控制工具对比)相关推荐

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

    集中式 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比 ...

  2. 架构选型必读:集中式与分布式全方位优劣对比

    应用现状比较 由于历史原因,集中式架构多用于传统银行.电信等行业.主机资源集中在大型主机或小型机上.集中式架构下,包括操作系统.中间件.数据库等"基础软件" 均为闭源商用系统.集中 ...

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

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

  4. Git集中式vs分布式笔记

    git简介 是目前世界上先进的分布式版本控制系统(没有之⼀). 不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去.Linus花了两周时 ...

  5. Git 学习笔记:5 分布式工作流程

    Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...

  6. Git复习(一)之简介、安装、集中式和分布式

    简介 Git是分布式版本控制系统,使用C语言开发的,CVS.SVN是集中式的版本控制系统,集中式的版本控制系统不但速度慢,而且必须联网才能使用. Git是分布式版本控制系统,同一个Git仓库,可以 分 ...

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

    [前言] 大家都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了,之前的linux代码是由Linus本人通过手工方式合并代码,后来为了切 ...

  8. Git学习笔记:远程仓库

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. Git学习笔记(一)

    Git学习笔记(二) 目录 一.git简介 1.1 历史 1.2 特点 二.安装与配置并创建一个版本库 2.1 安装配置 2.2 创建一个版本库 三.版本的创建与回退 3.1 创建一个版本 3.1.1 ...

  10. Git学习笔记:Git简介

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 目 ...

最新文章

  1. multiprocessing python_Python多线程/进程(threading、multiprocessing)知识覆盖详解
  2. springboot优雅停机
  3. c语言再大文件内搜索,C语言中大型磁盘文件的二进制搜索
  4. [PHP] 用JSON 传输图片源码
  5. 3Com发布新MSR路由器 为企业提供视频播客支持
  6. 【PAT - 甲级1024】Palindromic Number (25分)(大数,模拟)
  7. python多线程教程_Python多线程编程教程【2小时学会】
  8. 己所不欲,勿施于人的意思,这句话出自哪里?
  9. github 使用方法总结 还有一部分不太懂
  10. css_02 | CSS——CSS 选择器详解
  11. LayaAir 获取对象边界 getBounds/ getGraphicBounds
  12. WinRAR去广告方法
  13. oracle加密表空间
  14. Scanner的.next()以及.nextLine()各自代表什么意思
  15. 交易猫鲨鱼系统源码搭建
  16. 黑客养成—CTF笔记(一)
  17. 【数论】同余(四):一元线性同余方程组(两两相消、中国剩余定理)
  18. tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本
  19. C语言中的puts()、putchar()、printf()
  20. Linux 服务器安装部署Jena

热门文章

  1. java知识总结-19
  2. 圆角进度条,带数字居中显示的圆角进度条
  3. 讨论一下hibernate如何动态注册一个动态生成的实体类
  4. HAL层三类函数及其作用
  5. xcode 调试提示
  6. URAL 1732. Ministry of Truth ( KMP 多模式串匹配 )
  7. 自定义线程池-c#的简单实现
  8. jdbc、PreparedStatement预编译原理
  9. BlockingQueue原理分析(ReentrantLock、Condition的实践)
  10. Zookeeper案例之分布式全局唯一ID生成