概念
Git(分布式版本控制系统)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
分布式与集中式
二者最重要最核心的区别Git是分布式的,而SVN是集中式的。注意Git并不是目前唯一的分布式版本控制系统,还有比如Mercurial等。其实Git可以跟Svn一样采用集中式工作流(详情参考http://blog.jobbole.com/76847/),但Git更倾向于分布式开发。
- 每一个开发人员的电脑上都有一个本地仓库,所以即使没有网络也一样可以Commit到本地仓库,查看历史版本记录,创建项 目分支等操作,等网络再次连接上Push到Server端。而SVN断开网络虽然可以继续开发敲代码,但是无法Commit代码,这也是Git当前如此受欢迎的一个原因。
-
SVN只能有一个指定中央版本库。当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。而对于Git 而言,如果主要版本库(例如:GitHub的版本库)发生了什麼事,工作成员仍然可以在自己的本地版本库(local repository)提交到本地仓库,等待