SVN及Git比较.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Software Configuration Managemen Software Configuration Managemen t t 提供配置管理的方法,工具,方案,经验./uahoo 转 :SVN与Git比较 2 01 1 -01 -1 7 1 2 :4 9 原文 摘要 Sv n是目前得到大多数人认可,使用得最多的版本控制管理工具,而Git 的优势在于易于本地增加分支和分布式的特性,可离 线提交,解决了异地团队协同开发等sv n不能解决的问题。本文就这两种版本控制工具的异同点作详细介绍。 目录 摘要 集中式vs分布式 版本库与工作区 全局版本号和全球版本号 部分检出 更新和提交 分支和里程碑的实现 分支与合并 撤消操作 权限管理 客户端操作 优缺点比较 Svn与Git协作 集中式vs分布式 两种不同类型的版本控制系统:集中式和分布式 Subversion属于集中式的版本控制系统 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到 这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。 图:1.1 集中化的版本控制系统 这种做法带来了许多好处,特别是相较于老式的本地VCS 来说。现在,每个人都可以一定程度上看到项目中的其他人正在做 些什么。而管理员也可以轻松掌控每个开发者的权限。 事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。若是宕机一小时,那么在这一小时内,谁都无法 提交更新、还原、对比等,也就无法协同工作。如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话 ,还会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,被客户端提取出来的某些快照数据除外, 但这样的话依然是个问题,你不能保证所有的数据都已经有人提取出来。 Subversion原理上只关心文件内容的具体差异。每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。如下图所 示: 图:1.2 集中式版本控制系统记录文件内容的差异 Subversion的特点概括起来主要由以下几条: 每个版本库有唯一的URL (官方地址),每个用户都从这个地址获取代 码和数据; 获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据; 提交必须有网络连接 (非本地版本库); 提交需要授权,如果没有写权限,提交会失败; 提交并非每次都能够成功。如果有其他人先于你提交,会提示“ 改动基于 过时的版本,先更新再提交”… 诸如此类; 冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者, 后提交,可能遇到麻烦的冲突解决。 Git属于分布式的版本控制系统 自2005年诞生于以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理 大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。 与SVN不同,Git记录版本历史只关心文件数据的整体是否发生变化。Git 并不保存文件内容前后变化的差异数据。实际上,Gi t 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对 文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的 快照作一连接。Git 的工作方式如下图所示。 图:1.3 Git保存每次更新时的文件快照 在分布式版本控制系统中,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任 何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。这类系统都可以指定和若干不同的 远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的 协作流程。 另外,因为Git在本地磁盘上就保存着所有有关当前项目的历史更新,并且Git 中的绝大多数操作都只需要访问本地文件和资 源,不用连网,所以处理起来速度飞快。用SVN的话,没有网络或者断开VPN你就无法做任何事情。但用Git 的话,就算你在 飞机或者火车上,都可以非常愉快地频繁提交更新,等到了有网络的时候再上传到远程

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档