转自:http://blog.csdn.net/huacuilaifa/article/details/19124635

在参加百度的开源项目时接触到Git,后来又陆续在微博上看到很多宣扬Git为程序员的比学工具,于是开始广泛收集了一些Git的电子书籍、网站等着自己“有时间”去消磨,一直拖到现在。由于自己实验室的项目的版本控制一直用的是SVN,先将二者区别总结如下:

1、版本控制的进化

      

本地版本控制系统                                                             集中化版本控制系统                                                     分布式版本控制系统

区别1:GIT是分布式的,SVN不是,这是GIT和其它非分布式的版本控制系统,最核心的区别;

GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。

区别2:Git直接记录快照,而非差异比较

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。

其他系统在每个版本中记录着各个文件的具体差异

Git保存每次更新时的文件快照

区别3:近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

[git/svn]Git和SVN差异相关推荐

  1. Git简介以及与SVN的区别

    Git是由著名Linux内核(Kernel)开发者Linus Torvalds为了便利维护Linux而开发的. Git是一个分布式的版本控制系统.作为一个分布式的版本控制系统,在Git中并不存在主库这 ...

  2. 从VSS到SVN再到Git 记Git的基本操作

    Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理.Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理 ...

  3. 版本控制概述|VSS/CVS/SVN/Git比较|Windows下SVN搭建详细介绍

    版本控制介绍 常用版本控制技术 vssVisual SourceSafe cvsConcurrent Versions System svnSubversion git 区别转自网络 SVN使用简介 ...

  4. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  5. phpstrom配置svn/git提交

    在setting选项Version Control中选择Subversion,正确配置SVN/Git的命令行路径,比如我的Git路径:F:Program FilesGitbingit.exe 将当前目 ...

  6. CVS,GIT,Mercurial和SVN比较

    最近关于DVCS讨论的如火如荼,转一篇4个著名VCS的比较 特征 CVS Git Mercurial Subversion 是否原子提交 CVS: 没有. CVS提交不是原子的 Git: 是的. 提交 ...

  7. Git 、CVS、SVN比较

    项目源代码的版本管理工具中,比较常用的主要有:CVS.SVN.Git 和 Mercurial 目前Google Code支持SVN.Git.Mercurial三种方式,例如:我上传的 linux-ke ...

  8. SVN Git 设置忽略目录 大全

    eclipse中SVN设置 用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在, ...

  9. python svn模块_使用Python实现一键批量更新SVN/Git模块的脚本

    现在我们开发的过程中,大都是模块化的工作方式,咱们的工程源码结构就是N个模块,N个SVN/Git地址,如果需要更新就得手动一个个的操作,弄起来实在太麻烦了,之前我都是写批处理来实现批量更新的,现在来使 ...

  10. VSS SVN GIT SVN 加锁签出

    VSS TFS SVN GIT VSS 两大功能: 1.签出后加锁,别人不能签出,独占签出. 2.在服务端可以查看哪些用户签出了哪些文件. 3.查看所有签出未签入的文件列表,SVN未发现此功能. 缺点 ...

最新文章

  1. ​​《自然》2020年十大科学发现出炉:病毒,冷冻电镜与快速射电暴
  2. 前沿报告|AI系列报告之:智能计算芯片
  3. 帧中继中配EIGRP(hub-spoke)
  4. java后台 flex前台例子_flex+blazeds+java后台消息推送(简单示例)
  5. 在windows下安装Redis
  6. 华为 招聘 状态 查看_英特尔放弃5G芯片研发:三星受益;爱立信2019年Q1净利润约2.51亿美元;华为也将要与高通和解;天津首个5G电话成功打通...
  7. 如何快速学习一门新的编程语言?零基础开始学编程,就可以这样!
  8. java传递引用参数
  9. IOS微信API异常:unrecognized selector sent to instance 0x17005c9b0‘
  10. SpringBoot项目读取json配置文件
  11. Laravel框架——增删改查
  12. 2017-12-24 手机编程环境初尝试-用AIDE开发Android应用...
  13. 使用开票组件快速开具清单发票
  14. JAVA编写一个加密及解密程序
  15. 用python求正方形面积是多少_长方形正方形面积的计算
  16. 艾泰(UTT)WiFi短信验证:无线上网热点短信认证设置流程
  17. 真正的人工智能能实现吗_如何实现真正的人工智能
  18. 用jQuery合并表格中相同文本的相邻单元格
  19. Arduino Uno + PAJ7620U2 实现手势识别控制LED灯工作
  20. 运维常用工具命令/知识总结

热门文章

  1. Linux启动加载过程解析
  2. linux禁止客户端上传文件_图片/文件上传如此简单|macOS 图床客户端 uPic
  3. 树莓派悄悄放了个微软“后门”,系统加入微软源却未告知,用户怒了
  4. 一天三场签约,百度Apollo智能交通这速度,真快!
  5. IccFileHandler和IccRecords
  6. ONOS项目首赢11000次下载 Oracle发布云路由
  7. Android EditText
  8. C++ 继承与接口 知识点 小结(一)
  9. hibernate逆向工程生成的实体映射需要修改
  10. ChemDraw 15.1 Pro插入阿尔法可以这样做