项目管理Git与SVN

Posted 扣丁学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目管理Git与SVN相关的知识,希望对你有一定的参考价值。

  一、SVN(集中式管理)

  SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。

  集中式管理的工作流程

  集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:

  开始新一天的工作:

  从服务器下载项目组最新代码。

  进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

  下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

  二、GIT(分布式版本控制系统)

  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目

  Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.

  分布式工作流程

项目管理Git与SVN

  Git的功能特性:

  从一般开发者的角度来看,git有以下功能:

  1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

  2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

  3、在单机上自己创建的分支上提交代码。

  4、在单机上合并分支。

  5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

  6、生成补丁(patch),把补丁发送给主开发者。

  7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

  8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

  9、从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

  10、查看邮件或者通过其它方式查看一般开发者的提交状态。

  11、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

  12、向公共服务器提交结果,然后通知所有开发人员。

  三、Git与SVN区别

  v Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;

  v Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;

  v Git鼓励分Branch,而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有merge时用的是Beyond Compare工具合并后再Commit的;

  v Tortoise也有出Git版本,真是好东西;

  v SVN在Commit前,我们都建议是先Update一下,跟本地的代码编译没问题,并确保开发的功能正常后再提交,这样其实挺麻烦的,有好几次同事没有先Updata,就

  Commit了,发生了一些错误,耽误了大家时间,Git可能这种情况会少些。

  四、SVN 和 Git 哪个更适用于项目管理?

  首先说一下,我是一个研发团队的项目经理,SVN和Git我都用过,SVN更适用于项目管理, Git仅适用于代码管理。

  一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物, 包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理,使项目组的管理处于有序高效的状态。

最新微信活动:

最新搞笑视频:

最新专栏:

微信活动:

        戳原文,更有料!

以上是关于项目管理Git与SVN的主要内容,如果未能解决你的问题,请参考以下文章

GIT与SVN

项目管理Git与SVN

Git 与 SVN 区别

用好SVN与Git,版本管理都不是问题

git-svn:通过git来管理svn代码

做项目时SVN与Git的选择