探讨团队项目代码仓库管理

如何做好项目管理是目前大多数公司会面临的一个问题,那么我们今天就来讨论一下如何更好的管理项目代码仓库。

首先来看看会用到的一些关键技术或名词:

  • Git:分布式版本控制系统,目前被普遍的接受
  • gitlab/Bitbucket:是一个用于仓库管理系统的开源项目,当然这里为什么不去用github或者codding等自己可以去想想

接下来说说我司目前使用的管理方式,可能不是最好,但是基本可以解决多人协作开发并不相互覆盖的需求。

git workflow

流程

  1. 先从主仓库拉去不同的分枝,分别是master(主干分枝),pre(灰度分枝),daily(测试分枝)
  2. 开发新功能的时候都是从master上拉取最新的分枝(如f分枝)
  3. 然后在f分枝上进行开发(个人开发的话不要推送到远端)
  4. 开发完功能,要提测时就合并到daily上交给测试进行测试,测试过程中修复的bug继续在f分枝进行,然后再合并到daily,以此直到测试环境通过
  5. 测试环境通过后将f分枝合并到灰度pre分枝,并进行测试,测试过程中修复的bug继续在f分枝进行,然后在合并到daily测试完成后在合并到pre分枝(测过程也可直接合并到pre分枝测试,但需要把最终的f分支合并到daily分支),以此直到灰度环境通过
  6. 灰度环境通过测试后,pre分枝打包发部署到线上,稳定后将本地f分枝合并到master分枝,并删除f分枝

说明

以上过程中可能会有一些问题产生,具体解决方法为:

  1. 每次新功能和修复bug分枝都必须从master上拉取
  2. 避免多人同时修改同一个模块(同一块代码)

写在最后

这样可能会有人问:在pre分枝上提交了多个项目a、b、c,但是到发布的时候只有a发,b和c还在测试,这样会把b和c的代码发布到线上,怎么办?

不要着急,每个功能页面引用的静态资源都是带版本号的,即使发布到线上不去改他的引用版本号也是无关紧要哈~~