Git与svn的区别

来源:互联网 发布:太平人寿内勤知乎 编辑:程序博客网 时间:2024/04/30 12:22

转载自: 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 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

其他区别再总结。。。。。。


0 0
原创粉丝点击