浅谈Git 与 SVN 区别
起步
SVN和Git是当下主流的版本控制工具,今天小编就带大家对比一下他们之间的区别与优缺点。
SVN
概念
Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN的优点:
1、采用集中式,易于管理,保证安全性;
2、管理方便,逻辑明确,理念符合常规思维;
3、代码的一致性高;
4、适合人数不多的项目开发;
5、允许一个文件有任意多的可命名属性,会关注所有的文件类型;
6、支持二进制文件,更容易处理大文件;
7、支持空目录。
SVN的缺点:
1、服务器压力太大,数据库容量暴增;
2、必须连接在服务器上,否则基本不能工作、提交、对比、还原等;
3、不适合开源开发。
Git
概念
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git的优点:
1、适合分布式开发,强调个体;
2、公共的服务器压力和数量都不会太大;
3、速度快, 成熟的架构,开发灵活;
4、任意两个开发者之间可以很容易的解决冲突;
5、离线工作,管理代码成本低,不需要依赖服务器;
6、部署方便。基本上下个命令就可以用;
7、良好的分支机制,可以让主干代码保持干净。
Git的缺点:
1、资料少,学习成本比较大,学习周期比较长,要求人员素质比较高;
2、不符合常规思维;
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。