git是分布式的,svn不是。
git和svn一样有自己的集中式版本库或服务器。但git更倾向于被使用分布式模式,克隆版本库后即使没有网路也能commit文件,查看历史版本记录,创建项目分支等,等网络再次连接上Push到服务器端。
git把内容按元数据方式存储,而svn是按文件。
所有的资源控制系统都是把文件的元信息隐藏在一个类似svn、cvs等的文件夹里。
git目录是处于你机器上的一个克隆版的版本库,他拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
git没有一个全局的版本号,而svn有。
git的内容完整性优于svn。因为git的内容存储使用的是哈希算法。
git可以有无限个版本库,svn只能有一个中央版本库。
当svn中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。
每一个git都是一个版本库,区别是他们是否拥有活跃目录。如果主要版本库有问题,例如置於GitHub版本库,工作成员仍然可以在自己的本地版本库提交,等待主要版本库恢复即可。工作成员也可以提交到其他的版本库!