git和svn的详细对比
2018-03-02 17:21
579 查看
原文地址
\ | svn | git |
---|---|---|
系统 | 1.集中式版本控制系统(更适用于项目文档管理)2.svn适合企业内部由项目经理统一协调的多个并行项目开发 | 1.分布式系统(仅适用于代码管理)2.适用于通过Internet开源项目开发 |
灵活性 | 1.如果svn的服务器出现故障,开发就无法工作2.必须通过与服务器中央仓库交互,拉分支3.每一次查看日志需要先从服务器上下载下来 | 1.可以单机操作,服务器故障也可以在本地工作2.除了上传push操作和pull拉操作,其他都可以在本地操作3.根据自己开发任务任意在本地创建分支4.日志都是在本地查看效率较高 |
安全性 | 安全性行较差,只能定期备份并且是整个svn都得备份 | 安全性较高,每个开发者的本地就是一套完整版本库,记录着版本库的所有信息(gitlab集成了备份功能) |
分支方面 | 1.在svn中分支更像是版本库的另一个目录2.可针对任何子目录进行branch3.拉分支的时间较慢,因为拉分支相当于copy4.创建完分支后,影响全部成员,每个人都会拥有这个分支 | 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常用命令的对比图l
- Git/SVN 版本管理工具的对比
- 对比SVN学习GIT版本管理工具
- 关于Git和SVN的对比
- Git和svn的相关命令对比
- git实践:对比svn
- 【转】对比SVN学习GIT版本管理工具
- git之:常用的svn与git命令对比
- NetBean、MyEclipse、Eclipse + Svn/Git 环境搭建和使用比较(详细)
- GIT和SVN之间的区别及基本操作对比
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
- git与svn cvs对比
- 对比Git 与 SVN,这篇讲的很易懂
- svn命令与git命令对比
- 【转载】Maven安装配置+ GIt&SVN + Jenkins详细配置 软件项目管理 持续集成实验
- 对比 Git 与 SVN,这篇讲的很易懂
- GIT和SVN之间的区别及基本操作对比
- Git 入门知识(与SVN对比)