让流程说话,流程是将说转化为做的惟一出路
前言
每位使用Git管理项目的小伙伴,不管有没有真正地去了解过有关Git的工作流程,都在实际操作中使用了工作流,工作
Gitflow
什么是Git Flow?
Git Flow 是构建在Git工具上的一个功能驱动式开发
的一套行为规范和简化部分Git操作的工具.[1]
它拥有2种类型的长期分支和3种类型的短期分支:
长期分支
- master 主分支
- develop 开发分支
一般来说,master 主分支上是项目线上环境随时可部署的代码
develop 是测试环境上最新的可部署代码
短期分支
- 预发布分支 release branch
- 功能分支 feature branch
- bug修复分支 hotfix branch
短期分支是功能性,临时性的,一般以语义话的名字命名,例如:
预发布分支 : release_1.0.0
预发布说明一般会在 readme.md里,测试通过后会合并到主分支
bug修复分支 : hotfix_1134
对修改issue中提交bug的功能修复,分支名为hotfix
前缀加上issue代号,用于标明该分支是修复哪个问题
功能分支 : feature_985 / feature_upload_video
功能分支是用于新功能开发时所建立的临时分支,一般来说会使用feature
前缀加上功能代号,但也有直接写上功能说明的情况,主要看公司要求
短期分支是临时性的,开发完成后应将其合并到长期分支后,然后删除
其他
短期分支在理论上应该在开发完成后便删除,但在实际上,短期分支会存在一段时间,如预发布分支 release_1.0.0 会在 release_1.0.4之后才会删除,以方便项目的回滚
项目中的工作流
有关Git Flowr 的工作流介绍已经讲完,下面,将简单描述一下项目中的工作流应用
确定开发流程
一般来说,任何任务会有下列几个基本概念:
- 未开始
- 准备中
- 进行中
- 已完成
而在程序项目开发中,则会填充为:
-
未开始/准备中 项目已立项,尚未开始,进行需求/功能/开发条件的确认,如:何时完成,功能合理性,是否需要外派等
-
进行中/开发中
项目所有的准备工作都已完成,所有相关人员已进入到热火朝天的开发中 -
评审中/开发完成
功能已开发完成,需要上级或同行进行代码评审 -
测试中
代码评审通过,测试人员进行测试 -
待部署
测试完成,等待运维人员进行部署 -
完成
运维人员成功部署,此需求已完成/进行维护阶段
开发时的注意事项
- 进行任务开发时,从develop上变基来确认代码是否是最新的
- 提交时,标明你的任务:如任务号为1234,提交时写明: Resolve #1234 或者 [#1234] 等标识
- 提交前,并查看编译器检查,确认没有常见错误
- 为避免重复的构建项目,可以选择使用 Jenkins 或其他工具等进行自动化部署. [2]
- 如果有文档需要更新,请一定要更新文档
参考文档
[1] 大圣代.Git Flow是什么?你out了吧. https://www.jianshu.com/p/1d8da713316e .
[2] 晚成.快速部署项目:alibaba cloud toolkit简单使用说明. http://autuan.top/2019/09/20/cloudtoolkit/ .
[3] [加] Emma Jane Hogbin Westby.Git团队协作[M].北京:人民邮电出版社