SVN和Git 介绍,区别,优缺点,适用范围总结
来源:互联网 发布:淘宝店被释放怎么重开 编辑:程序博客网 时间:2024/06/02 04:49
SVN属于集中化的版本控制系统
这种做法带来了许多好处,特别是相较于老式的本地VCS来说。现在,每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。若是宕机一小时,那么在这一小时内,谁都无法提交更新、还原、对比等,也就无法协同工作。如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话,还会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,被客户端提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人提取出来。
Subversion原理上只关心文件内容的具体差异。每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。
Subversion的特点概括起来主要由以下几条:
1.每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;
2.获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;
3.提交必须有网络连接(非本地版本库);
4.提交需要授权,如果没有写权限,提交会失败;
5.提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类;
6冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。
Git属于分布式的版本控制系统
自2005年诞生于以来,Git日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。
与SVN不同,Git记录版本历史只关心文件数据的整体是否发生变化。Git并不保存文件内容前后变化的差异数据。实际上,Git更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git不会再次保存,而只对上次保存的快照作一连接。
简略的说,Git具有以下特点:
1.Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。
2.Git的每一次提取操作,实际上都是一次对代码仓库的完整备份。提交完全在本地完成,无须别人给你授权,你的版本库你作主,并且提交总是会成功。
3.甚至基于旧版本的改动也可以成功提交,提交会基于旧的版本创建一个新的分支。
4.Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。
5.冲突解决不再像是SVN一样的提交竞赛,而是在需要的时候才进行合并和冲突解决。
若是开源项目,则git更加适合,每个人都可以维护自己专属的版本,同时有github开源社区支持。
- SVN和Git 介绍,区别,优缺点,适用范围总结
- SVN和Git 介绍,区别,优缺点,适用范围总结
- SVN和Git 介绍,区别,优缺点,适用范围总结
- SVN和Git 介绍,区别,优缺点,适用范围总结
- SVN和Git的优缺点
- Git 和 SVN的区别总结
- 关于git和SVN的介绍和区别
- GIT和SVN区别
- git和svn区别
- git和svn区别
- svn和Git区别
- git和svn区别
- git和svn区别
- Clearcase/Git的区别和优缺点
- SVN和Git简单介绍
- git和SVN的区别
- Git 和 Svn的区别
- SVN和Git的区别
- 常用参数选项
- 中南大学第十一届大学生程序设计竞赛-COJ1897-The price table of the snack store
- spring源码解析(二)
- springmvc默认忽视后缀的映射规则
- 设计模式——抽象工厂模式
- SVN和Git 介绍,区别,优缺点,适用范围总结
- libsvm 在python下的错误解决
- 乐观锁和悲观锁
- sys_config.fex
- 【C语言常识】内存管理详解
- google浏览器访问设置
- [Android]如何做一个崩溃率少于千分之三噶应用app(9)-Small插件化
- MySQL数据库(13)
- JavaScript中常见的设计模式(3)原型模式