git和svn的详细对比

Posted 跪着行走的boY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git和svn的详细对比相关的知识,希望对你有一定的参考价值。

            版本工具

差异

svn

git

系统

1.集中式版本控制系统(更适用于项目文档管理)

2.svn适合企业内部由项目经理统一协调的多个并行项目开发

1.分布式系统(仅适用于代码管理)

2.适用于通过Internet开源项目开发

灵活性

1.如果svn的服务器出现故障,开发就无法工作
2.必须通过与服务器中央仓库交互,拉分支
3.每一次查看日志需要先从服务器上下载下来

1.可以单机操作,服务器故障也可以在本地工作
2.除了上传push操作和pull拉操作,其他都可以在本地操作
3.根据自己开发任务任意在本地创建分支
4.日志都是在本地查看效率较高

安全性

安全性行较差,只能定期备份并且是整个svn都得备份

安全性较高,每个开发者的本地就是一套完整版本库,记录着版本库的所有信息(gitlab集成了备份功能)

分支方面

1.在svn中分支更像是版本库的另一个目录
2.可针对任何子目录进行branch
3.拉分支的时间较慢,因为拉分支相当于copy
4.创建完分支后,影响全部成员,每个人都会拥有这个分支

1.只能针对整个仓库进行branch,一旦删除无法恢复
2.拉分支时间较快,因为拉分支只是获取文件的版本元素
3.自己创建的分支不会影响其他人

版本控制

1.svn直观性文件内容的具体差异,会保存前后变化的差异数据
2.版本号进行控制,每次操作都会产生一个高版本号(svn的全局版本号)

1.git只关心文件数据的整体发生变化,更像是把文件做快照,文件没有变化时,git不会再次保存,只是对上次保存的快照做链接
2. 40 位长的哈希值作为版本号,没有先后之分

工作流程

1.每次更改文件之前都得update操作,有的时候修改过程中这个文件有更新,commit不成功
2.有冲突,会打断提交动作(冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。)

1.每天开始工作前pull整个工程,然后开始工作,下班或者测试前提交,也会有冲突
2.git的提交过程不会被打断,有冲突会标记冲突文件

内容管理

svn对中文支持好,操作简单,适用于大众

对程序的源代码管理方便,代码库占用的空间少,易于分支化管理

学习成本

1.适用于普通的开发团队,使用起来更方便,成本较低

1.适用于开发者,水平高,更在乎效率而不是易用性,成本较高

权限管理

svn的权限管理相当严格,可以按组、个人针对某个子目录的权限控制

git没有严格的权限管理控制,只有账号角色划分

协作

不能与git协作,不兼容git

git-svn可以跟svn库进行交互,然后尽可能的在本地操作,可以兼容svn

以上是关于git和svn的详细对比的主要内容,如果未能解决你的问题,请参考以下文章

转载git命令和svn的对比

对比 Git 与 SVN

git与svn对比

Git 与 SVN对比详解

对比Git 与 SVN,这篇讲的很易懂!

svn与git操作对比 (未来有空做一个 svn与git实战对比 )