最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

使用git管理多人多任务并行的项目

编程开发 5034浏览 1评论

在开发项目的时候经常会碰到这样的问题:大家并行开发不同的功能,有些功能开发好了要更新到测试环境测试,测试OK了要发布代码,发布功能的时候未开发完成的功能不能发布到线上。以前使用svn的时候根本无法管理这样的场景,因为所有的开发都一个分支上进行,即便svn也能建分支那也相当的麻烦,根本无法适应快节奏的功能开发迭代。后来采用了git进行代码管理,git强大的分支功能,很好的解决了这个问题。下面分享一下自己的实践经历。

早先的流程

采用2个主要分支和功能分支的方式,参考下图:

git管理项目流程

git管理项目流程

master是主线分支,线上的代码就是该分支的代码。该分支只能由指定的发布人员操作
test分支是测试分支,所有开发的功能都可以合并到该分支而后进行统一测试
功能A、功能B分支都是根据需要clone出来的新分支。

具体操作流程如下:

开发阶段

开发人员从master分支clone出现功能分支进行开发。在实际的过程中如果是一些非常小的改动我们都会在test分支上直接进行修改。

测试阶段

功能开发完成后就把功能分支合并到test分支,而后推送到统一的测试环境进行测试。

发布阶段

测试完成后就可以进行发布了,发布阶段由指定的发布人员将test分支的代码合并到master分支。

这种方式一开始实行非常好,当时人员不多,新功能开发一般都只有1,2个,很多细节微调的都直接在test分支上修改。但是到后面随着人员的增加,很多时候都是4,5个功能一起开发,这时候问题就来了。当我们把4,5个功能都合并到测试分支进行测试的时候,这些个功能还没测试完成,此时需要修复一个致命bug,因为所有的功能都在test分支上,我们无法直接从test分支合并代码到master分支进行发布。

后来我们考虑直接从功能分支合并代码到master分支进行发布,这样又出现了一个问题:就是很多改动都非常小,比如修改一个字眼等。如果每个这样的小修改都要clone分支出来那岂不是非常的麻烦。于是我们又想到新建一个分支专门用来处理这些小的改动,就出现了如下改进版。

改进版

采用3个分支和功能分支的方式,参考下图:

git管理项目流程改进

git管理项目流程改进

和前面一个流程相比多了一个detail分支,专门用来处理小修改。

具体操作流程如下:

开发阶段

如果只是小修改可以直接在detail分支进行开发。如果功能比较大,开发周期比较久,则从master分支clone出现功能分支进行开发。

测试阶段

测试阶段前面一个流程一致:功能开发完成后就把功能分支合并到test分支,而后推送到统一的测试环境进行测试。

发布阶段

从功能分支合并到master分支进行发布。
发布完成后从相应的功能分支合并代码到detail分支,之所以要做这一步是为了同步master分支和detail分支的代码。以后如果该功能有细节性的调整就可以直接在detail分支上进行。

目前该流程正在实行中,暂未发现问题。

最后

在发布的过程中实际上还经常要处理配置文件的修改、数据结构的更新和计划任务的部署等,这里就不再累述,建议要针对项目的情况制定一个完整的发布流程。上面的流程要是有发现什么问题可以给我留言。

tips:分支多了之后要注意定时清理,不然项目就会非常乱了。

转载请注明:快乐编程 » 使用git管理多人多任务并行的项目

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 陈杰斌
    目前该方式实行一年多了,没有发现啥问题。就是分支经常会比较多,多注意清理分支一下。
    陈杰斌2年前 (2015-10-25)回复