在团队合作写一个项目时,可能出这样去管理我们的代码,dev、uat、release、prd等分支进行控制,每个人开发时,会再拉取一个自己的开发分支,当所有功能开发完成后,再往dev、uat、release等等分支进行合并,但是我们经常会出现这样的问题,当我们开发很多个功能,产品说需要在6月30日上线,然后我们一路从开发到测试,最终uat测试通过了之后,产品说其中的两个功能在6月30日不上线了,改为下次版本再上线,这时,会不会有傻眼的感觉,这TM都不知道什么时候写的代码,拆都不知道如何拆开。
由此看来,咱们的代码管理需要有一个更加合理的模式,针对此情况我提供一种供大家思考的管理方式。
- 当有一个需求出来的时候,比如需求名称为“需求一”,我们可以从prd分支拉取一个功能分支“feature_0524_需求一”(feature_当前时间_需求名称),然后再进行开发
- 依次类推,feature_0524_需求二、feature_0524_需求三、feature_0524_需求四、feature_0524_需求五、feature_0524_需求六,开发者自测的话,咱们可以将需求分支都合并到dev分支进行测试
- 当开发自测没有问题时,则将功能分支合并到uat交给测试人员进行测试,当uat测试没有任何问题时,在发版前两天,可以将功能分支合并到release分支。此时,uat和release分支代码处于同步状态
- 如果发版计划没有任何变更的话,那么在发版前可以直接将release分支合并到prd分支,进行发版;如果发版计划有变更,比如,需求二和需求五在下个版本上线,那么可以将release分支删除掉,从prd再拉取一个release分支,再将除需求二和需求五的分支都合并到release,随后从release合并到prd进行发版。
- 发版后,如果生产验证有问题的话,请不要直接在release分支或者功能分支进行修改,应该直接从prd拉取一个修改分支,比如hot_fix_0630,进行修改,修改完成后,请合并到release分支进行uat验证,验证无误后再将release合并到prd
- 版本发布成功后,可以将当前版本打上一个标签,如v20210630
- 将已发版的功能分支删除掉,包括hot_fix_0630分支。任何分支都是从prd进行拉取