Git和SVN差异

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

时间: 2024-11-08 17:30:15

Git和SVN差异的相关文章

Android-版本控制Git和SVN

Android-版本控制Git和SVN 一 版本控制 版本控制是一种软件工程的技巧,确保在开发的过程中,由不同的人所编辑的相同的项目得到更新 二 版本控制的历史 版本控制的方式 本地版本控制 集中版本控制(SVN) 分布式版本控制(Git) 版本控制的使用历史 1 VCS 2 VSS CVS(不支持并发和原子提交) 3 CLearCase ,SVN, perforce, TFS 4 Mercurial(水星) , Git 三 版本控制-SVN 1 SVN架构 单机结构, 本地文件系统, 网络结构

蒋鑫:为什么 Git 比 SVN 好

在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企业用户来说这个决心不太好下.部分原因是出于对Git的误解,部分原因是尚不了解 Git到底能给项目管理带来什么好处.希望本文能对您项目的版本控制系统选型提供帮助. 对SVN的迷信和对Git的误解 误解1:SVN只能检出(checkout)一个版本(revision)的代码,而Git却可以脱库! 这个误

git跟svn 服务端对比

Git已经火了很久,简单的使用也没有问题,但有几个问题一直以来都没有搞清楚:git跟svn有哪些异同,两者相互的优劣是什么,git的分布式怎么理解,为什么有离线提交,,,自己动手,分别看一下服务端跟客户端使用有什么异同,大概也就了解了. 选择的服务端分别是gitlab跟visual svn server. 1.gitlab简单说明: svn是我们比较熟悉的,svn有服务端跟客户端:虽然git是分布式的,但平时我们使用的时候往往都是有一个服务端的,比如gitlab,github等. Gitlab是

git-svn — 让git和svn协同工作

git-svn — 让git和svn协同工作 svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目.但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题.也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来说,存在着被误删除和版本更新无法回退两大情形. git作为一个分布式版本管理工具,可以很好的解决这个问题.因为它的大多数操作是在本地进行的.这里要说的是git是如何做到既可以管理好本地代码又可以与已有的SVN中心库进行同步的. 支持去中心化,是Git与生

为什么说 Git 比 SVN 更好

为什么说 Git 比 SVN 更好 在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企业用户来说这个决心不太好下.部分原因是出于对Git的误解,部分原因是尚不了解 Git到底能给项目管理带来什么好处.希望本文能对您项目的版本控制系统选型提供帮助. 对SVN的迷信和对Git的误解 误解1:SVN只能检出(checkout)一个版本(revision)

简记git与SVN

svn与git是目前比较主流的版本控制系统,在这里简单记录一下它们之间的异同. 一,从架构来说,SVN是集中式,git是分布式. 集中式的优点是代码高度统一,缺点也很明显就是非常依赖于中央服务器.如果服务器宕机或者本地 无法联网,那么你将无法提交更新.还原.对比等,也就无法协同工作.同时SVN上的提交也并非是 每次都成功,如果有一个人在你提交的时候先提交,那么就会提示你先更新再提交.SVN原理上只关 心文件内容的具体差异,每次记录有哪些文件做了更新并且更新了哪些内容. 而分布式的git会在本地克

为什么 Git 比 SVN 好

在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企业用户来说这个决心不太好下.部分原因是出于对Git的误解,部分原因是尚不了解 Git到底能给项目管理带来什么好处.希望本文能对您项目的版本控制系统选型提供帮助. 对SVN的迷信和对Git的误解 误解1:SVN只能检出(checkout)一个版本(revision)的代码,而Git却可以脱库! 这个误

Git,SVN的优缺点及适合的范围,开源项目?公司项目?

使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适合普通的公司开发团队.使用起来更加容易. 2)使用的场合不同.Git适用于通过Internet,有多个开发角色的单个项目开发,Svn适合企业内部由项目经理统一协调的多个并行项目的开发. 3)权限管理策略不同.Git没有严格的权限管理控制,只要有帐号,就可以导出.导入代码,甚至执行回退操作.Svn则有严格的权限管理,可以按组.按个人进行针对某个子目录的权限控

【转】GIT和SVN之间的五个基本区别

如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是通过介绍GIT能做什么.它和SVN在深层次上究竟有什么不同来帮助你认识它. 那好,这就开始吧- 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN