欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  一、SVN(集中式管理)
 
  SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。
 
  集中式管理的工作流程
 
  集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
 
  开始新一天的工作:
 
  从服务器下载项目组最新代码。
 
  进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
 
  下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
 
  二、GIT(分布式版本控制系统)
 
  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
 
  Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
 
  分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.
 
  分布式工作流程
 
  Git的功能特性:
 
  从一般开发者的角度来看,git有以下功能:
 
  (一)、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
 
  (二)、在自己的机器上根据不同的开发目的,创建分支,修改代码。
 
  (三)、在单机上自己创建的分支上提交代码。
 
  (四)、在单机上合并分支。
 
  (五)、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
 
  (六)、生成补丁(patch),把补丁发送给主开发者。
 
  (七)、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
 
  (八)、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
 
  (九)从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
 
  (十)、查看邮件或者通过其它方式查看一般开发者的提交状态。
 
  (十一)、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
 
  (十二)、向公共服务器提交结果,然后通知所有开发人员。
 
  三、Git与SVN区别
 
  Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;
 
  Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;
 
  Git鼓励分Branch,而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有merge时用的是Beyond Compare工具合并后再Commit的;
 
  Tortoise也有出Git版本,真是好东西;
 
  SVN在Commit前,我们都建议是先Update一下,跟本地的代码编译没问题,并确保开发的功能正常后再提交,这样其实挺麻烦的,有好几次同事没有先Updata,就
 
  Commit了,发生了一些错误,耽误了大家时间,Git可能这种情况会少些。
 
  四、SVN 和 Git 哪个更适用于项目管理?
 
  首先说一下,我是一个研发团队的项目经理,SVN和Git我都用过,SVN更适用于项目管理, Git仅适用于代码管理。
 
  一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物, 包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理, 使项目组的管理处于有序高效的状态。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h62806.shtml