SVN更适用于项目管理, Git仅适用于代码管理。
1、 最核心的区别Git是分布式的,而Svn不是分布的,Git更倾向于分布式开发,
因为每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,
查看历史版本记录,创建项 目分支等操作,等网络再次连接上Push到Server端
2、Git把内容按元数据方式存储,而SVN是按文件:因为,.git目录是处于你的机器上的一个克隆版的版本库,
它拥有中心版本库上所有的东西,例如标签,分支,版本记录等
3、 Git没有一个全局版本号,而SVN有:目前为止这是跟SVN相比Git缺少的最大的一个特征。
4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。
这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5、Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以。
6、克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复製5个版本的文件,
也就是说重复五次同样的动作。而Git只是获取文件的每个版本的元素,
然后只载入主要的分支(master)在我的经验,克隆一个拥有将近一万个提交(commit),
五个分支,每个分支有大约1500个文件的 SVN,耗了将近一个小时!而Git只用了区区的1分钟!
7、 版本库(repository):SVN只能有一个指定中央版本库。当这个中央版本库有问题时,
所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。
而 Git可以有无限个版本库。或者,更正确的说法,每一个Git都是一个版本库,
区别是它们是否拥有活跃目录(Git Working Tree)。如果主要版本库发生了什麼事,
工作成员仍然可以在自己的本地版本库(local repository)提交,等待主要版本库恢复即可。
工作成员也可以提交到其他的版本库!
8、分支(Branch)在SVN,分支是一个完整的目录。且这个目录拥有完整的实际文件。
如果工作成员想要开啟新的分支,那将会影响“全世界”!每个人都会拥有和你一样的分支
而 Git,每个工作成员可以任意在自己的本地版本库开啟无限个分支
只要不合并及提交到主要版本库,没有一个工作成员会被影响