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

下图就是分布式版本控制工具管理方式:

Git与SVN的区别

Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征。java培训

Git 与 SVN 区别点:

Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

Git分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

Git没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

Git的内容完整性要优于SVN:Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git 与其他版本管理系统的区别

Git 在保存和对待各种信息的时候与其它版本控制系统有很大差异,尽管操作起来的命令形式非常相近,理解这些差异将有助于防止你使用中的困惑。

下面我们主要说一个关于 Git 其他版本管理系统的主要差别:对待数据的方式。

Git采用的是直接记录快照的方式,而非差异比较。

大部分版本控制系统(CVS、Subversion、Perforce、Bazaar 等等)都是以文件变更列表的方式存储信息,这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。

具体原理如下图所示,理解起来其实很简单,每个我们对提交更新一个文件之后,系统记录都会记录这个文件做了哪些更新,以增量符号Δ(Delta)表示。下图来源于Git官网。

我们怎样才能得到一个文件的最终版本呢?

很简单,高中数学的基本知识,我们只需要将这些原文件和这些增加进行相加就行了。

这种方式有什么问题呢?

比如我们的增量特别特别多的话,如果我们要得到最终的文件是不是会耗费时间和性能。

Git 不按照以上方式对待或保存数据。 反之,Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。

git与svn的区别面试相关推荐

  1. git与svn的区别 ?Git 与 SVN那个更好?

    git与svn的区别 : http://www.360doc.com/content/12/1228/20/11220452_256857021.shtml 在版本控制系统的选型上,是选择Git还是S ...

  2. git与svn的区别及优缺点

    git与svn的区别及优缺点 svn: 只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,去除最新的文件或者提交更新. 集中式版本控制系统: 版本库 ...

  3. GIT 和 SVN的区别

    Git了解 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN ...

  4. Git和SVN的区别,Git的使用方法大全

    什么是Git: Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控 ...

  5. 版本控制系统GIT和SVN的区别

    两个都使用过,但是就保存代码来说,我偏向于SVN,而且用的比较熟练.但是GIT也有它的优势所在. 1)Git是分布式的,SVN不是: 这 是git和其它非分布式的版本控制系统,例如SVN,CVS等,最 ...

  6. Git和SVN的区别与联系

    1.什么是Git[多] GIT,全称是分布式版本控制系统,git通常在编程中会用到,并且git支持分布式部署,可以有效.高速的处理从很小到非常大的项目版本管理.分布式相比于集中式的最大区别在于开发者可 ...

  7. Git与SVN的区别以及Git与Git-SVN的常用命令

    目录 一.Git vs SVN 1.Git是分布式的,SVN是集中式的 2.Git复杂概念多,SVN简单易上手 3.Git分支廉价,SVN分支昂贵 二.Git核心思想 三.Git-SVN常用命令 初始 ...

  8. 《Git学习记录》—— git和svn的区别

    公司团队近期从使用老掉牙的svn换成了git.之前只听说过git,但还没使用过.所以边学边用的时候记录一些学习的过程. 先从git的基本概念以及跟svn的区别开始学习.通过svn的使用经历,对svn的 ...

  9. Git 与 SVN 的区别

    git 与svn 最大的区别就是: git是分布式版本控制系统;svn是集中式版本控制系统 svn 我们先来看看svn有哪些令人咂舌的操作,集中式好是好但是也有雨多不足 1.维护成本普遍偏高 它要一个 ...

最新文章

  1. 【C++】 15_类于封装的概念
  2. 每个软件工程师都应该尝试的5件事
  3. 错误提示“未能加载文件或程序集“Microsoft.Office.Interop.Owc11”,
  4. 你写的代码一点都不 Pythonic
  5. Unsupported Hardware Detected
  6. c++远征之多态篇——运行时类型识别(RTTI)
  7. 编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...
  8. centos7 mysql启动失败_Mysql主从复制
  9. 信息系统工程监理服务及营销策略
  10. 【kafka】produce response correlation id xxx on topic-partition retrying Error: NETWORK_EXCEPTION
  11. 需要额外端口信息_使用Python进行TCP端口扫描
  12. Effective C# 原则42:使用特性进行简单的反射(译)
  13. bug篇——generator逆向出现配置文件不存在
  14. c语言system.h头文件下载,c语言头文件大全
  15. ​关于技术变现的几点思考
  16. 利用图神经网络进行社交机器人检测
  17. 用MATLAB求系统状态方程,利用MATLAB求解系统的状态方程..doc
  18. 资深程序员和你重学五线谱 - 第一篇
  19. 易到暂停办理线下提现 称贾跃亭隐瞒巨额债务成影响提现关键因素
  20. Android 私有权限白名单

热门文章

  1. 511遇见易语言递归寻找文件及枚举子目录
  2. 旁路电容和去藕电容基础知识汇总
  3. 2021年广西艺术高考成绩查询,2021广西艺术类统考成绩查询
  4. Mac中编译、安装VTK
  5. 第二十二章:如何管理信息系统
  6. Remind-You Part1. 多进程控制
  7. 计算机二级mysql考试经验分享(2021年3月)
  8. Python实现数据预处理-离散值处理
  9. 解决Log4j日志文件输出到了前一天的备份文件里
  10. 网络安全的第二道防线:区块链