企业中常用的Git和Svn比较。
-
-
- 什么是Git
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。-
Git VS SVN1. Git 是分布式的,SVN 是集中式的
2. Git 存储的是文件快照,SVN 记录的是文件修改处
3. Git 没有全局的版本号,SVN 有全局版本号 -
集中式 VS 分布式
集中式:
版本文件存储在中央服务器中,其工作方式是,首先从中央服务器上下载到工作目录,然后在工作目录进行修改,修改之后再提交至中央服务器。
分布式:
没有中央服务器,每个电脑都是一个版本库,工作时候不需要从中央服务器上更新下载,多人协助时候只需要将修改的文件相互推送,进行合并。
对比:
1. 分布式安全性更高。分布式不存在中央服务器,每个电脑都有完整的版本库,那么就不用担心中央服务器发生文件丢失,而集中式的中央服务器文件丢失比较麻烦。
2. 分布式更为方便,不需要联网进行工作,而集中式的需要联网才可以将修改的文件推送到中央服务器中,如果文件较大,需要花费大量的时间在文件传输上。 - 换个角度思考一直以来的争论(既然git这么好,为什么很多公司还在使用svn呢?)
1.SVN的安全控制和权限管理更好。git 下,如果一个人clone以后,所有代码和历史都泄漏了。而 svn 有细致的按照目录级的权限控制,不开通对应目录的权限无法获取到目录下的内容。2.GUI工具,svn更加形象化,图形化界面处理更友好。3.git 有一定的学习成本,分布式的工作方式,需要转换思维方式4.有人总结成"管理用svn,代码用git所以,不要再问"iphone手机那么好,为什么还有人用三星?"类似的问题, 合适的才是最好的。
-