关于项目Git代码管理的一些总结

一、项目Git分支构建

  • master 主分支,只有项目的最高管理的研发具有该分支的操作权限,主分支的代码为线上稳定运行的版本代码;

  • develop 开发分支,研发不允许直接在该分支上进行开发提交代码,该分支的代码为测试环境部署的最新代码;

  • release-(版本号) 该分支是由master分离出的分支,对测试通过的develop上的代码进行merge合并,该分支版本为上线试运行版本,运行没问题后再合并到master分支上;

  • feature-(功能命名分支) 该分支为迭代开发的一个模块功能的需求,有develop分支上切分出来的分支;

  • feature-(功能命名分支)-(功能开发者) 该分支为对应的研发的分支,有功能分支切分出来的代码,该分支仅为本地分支,可以不提交到线上

二、项目的开发Git管理流程

#####1、项目初始化
1.1、一个新的项目开始,项目负责人在Git服务器上创建一个Project;

1.2、项目负责人对参与开发的人员进行Git项目权限的分配;

1.3、项目负责人进行项目基础的构建配置,出一份基础的环境要求,配置和运行的README文档,后期开发,项目中比较重要的需要记录的注意点,都写到README文档中。项目负责人做好这些基础工作,将代码提交到远程的develop分支上,并合并到master分支。

2、功能划分和分配

2.1、开发负责人对项目需求进行功能拆解划分;
2.2、开发负责人根据拆解的功能创建对应功能的分支,如feature-login,将相对独立的功能分配给相应的开发人员,也可以多人协同开发一个功能,当多人开发时,开发人员自己拉取功能分支,并分出自己的分支,如feature-login-xxx,后面带上自己的昵称;
2.3、开发人员每天及时提交更新自己的代码,当任务完成时,将自己开发的代码合并到对应的功能分支上,多人协同开发的功能需要每天及时拉取功能feature分支的代码,合并到自己的开发分支,并每天及时将自己的代码更新合并到功能feature分支上;
2.4、当该功能模块的代码开发完成,开发负责人统一将该功能分支feature的代码合并到develop分支上,并更新代码进行测试,由开发负责人删除改功能feature分支;
2.5、在测试过程中出现的bug或者需求变更微调,开发负责人重新从feature分支切出一个对应功能分支的处理分支,如feature-login-bug-adjust,处理产生的bug改动,合并到develop进行测试,当所有的问题处理完成,测试没问题之后,删除该功能的问题处理的分支。

3、预发布和发布

3.1、经过测试的develp分支的功能,开始进行发布,这时暂时不要合并master分支,防止出现严重的问题后能够及时更新会没有问题的master分支的代码,这里我们需要从develop创建一个预发布分支release-feature-功能,进行发布试运行,如果存在严重的问题,影响使用,可以及时换回master分支的代码;
3.2、预发布试运行阶段,如果发现小的bug问题,从对应的预发布release-feature-功能切出一个分支release-feature-功能-bug进行问题处理,本地测试完后合并回预发布分支;
3.3、试运行规定的一段时间没有问题,合并到master分支,并删除对应预发布分支;
3.4、这里主运行的master出现小的bug,从master分支切出问题修改的分支进行修改测试,最后合并更新,没问题了删除切出来的分支;
3.5、如果稳定运行的master出现需求变更的逻辑,重新按照以上功能划分和分配的逻辑重新安排,并到最终合并到master上。