SVN与Git比较

本文详细对比了集中式版本控制系统SVN与分布式版本控制系统Git的异同,包括工作方式、版本库与工作区、版本号、部分检出、更新与提交、分支与合并、撤消操作以及权限管理等方面,阐述了Git的灵活性、速度和分布式特性,以及SVN的集中式管理和部分检出功能。
摘要由CSDN通过智能技术生成

SVN与Git比较

分类: git svn 11766人阅读 评论(3) 收藏 举报
SVN与Git比较

摘要
Svn是目前得到大多数人认可,使用得最多的版本控制管理工具,而Git的优势在于易于本地增加分支和分布式的特性,可离线提交,解决了异地团队协同开发等svn不能解决的问题。本文就这两种版本控制工具的异同点作详细介绍。

目录

摘要: 1
一、 集中式 vs 分布式 2
1. Subversion属于集中式的版本控制系统 2
2. Git属于分布式的版本控制系统 4
二、 版本库与工作区 6
1. SVN的版本库和工作区是分离的 7
2 .Git 的版本库和工作区如影随形 7
三、 全局版本号和全球版本号 8
1. SVN与Git版本号比较 9
四、 部分检出 9
1. SVN的部分检出 10
2. Git的检出 10
五、 更新和提交 10
1.更新操作 11
2.SVN中的commit命令 11
3.Git中的暂存区域(stage) 11
六、 分支和里程碑的实现 14
1.Subversion的分支/里程碑 14
2.Git 的轻量级分支和里程碑 14
3.多分支间的切换 15
七、 分支合并 16
1. SVN的分支合并 16
2.Git的分支合并 16
八、 撤消操作 19
1.提交的撤销 19
2.提交说明的修改 20
3.修改和重构历史提交 20
九、 权限管理 21
十、 客户端操作 22
1.TortoiseSVN 22
2.Git客户端 23
十一、 Svn与Git协作 26
1.git svn 27


一、 集中式vs分布式
两种不同类型的版本控制系统:集中式和分布式
1. Subversion属于集中式的版本控制系统
集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
 

图:1.1 集中化的版本控制系统
这种做法带来了许多好处,特别是相较于老式的本地VCS 来说。现在,每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。若是宕机一小时,那么在这一小时内,谁都无法提交更新、还原、对比等,也就无法协同工作。如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话,还会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,被客户端提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人提取出来。
Subversion原理上只关心文件内容的具体差异。每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。如下图所示:
 

图:1.2 集中式版本控制系统记录文件内容的差异
Subversion的特点概括起来主要由以下几条:
• 每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代
码和数据;
• 获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;
• 提交必须有网络连接(非本地版本库);
• 提交需要授权,如果没有写权限,提交会失败;
• 提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于
过时的版本,先更新再提交”… 诸如此类;
• 冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,
后提交,可能遇到麻烦的冲突解决。
2. Git属于分布式的版本控制系统
自2005年诞生于以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。
与SVN不同,Git记录版本历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值