项目主分支包括三个固定分支, main 分支、 develop 分支和 test 分支。其它分支都需要在合并到 develop 分支后进行删除。
- 主生产分支 main :在开发过程中,不允许直接提交,只能由 develop 分支合并进来。
- 主开发分支 develop :所有的功能性分支,都应该先合并到 test 分支,测试通过后,再合并到 develop 分支中,经过评审后才能由 develop 分拣到 main 分支。
- 主测试分支 test :所有新的功能代码提交后,都需要先提交到 test 分支,然后编写测试代码,覆盖率达标后,才能合并到 develop 分支中。
x 代表一个具体的名称,可以是类名、模块名、功能名等。
- 新增功能: feature-x ,功能上线后移除分支。
- 修复问题: bug-x ,修复问题并通过测试后,需要合并到 develop 中,在 develop 分支中测试通过,才可以将代码分别分拣到 main 和 test 两个分支中。
- 重构代码: refactor-x-y ,用来重构代码,如果由一个文件或者目录拆分成多个文件或者目录,可以使用 - 进行连接,但是要说明具体的拆分内容。补充对应的 doc 或者说明文档。
提交日志与分支命名一样,需要按具体的任务提交对应的内容。
需要按照 <type>(scope):<subject>
进行编写。类型可以选择关键字也可以使用 emoji 进行标识。
其中 <type> 与分支类似。
- fix-bug :修复问题 🐛
- feature :新增功能 ✨
- test :提交测试代码 ✅
- style :修改代码样式或者注释 🎨
- docs :编写文档或者更新文档 📝
- refactor :重构功能、模块或者是方法 ♻️
- config :新增或者修改配置文档 🔧
- downgrade :降级依赖, ⬇️
- upgrade 升级依赖 ⬆️
比如: fix-bug(首页模块):修复日期显示错误问题。 。也可以写成 🐛 (首页模块): 修复弹窗 JS 问题。
scope 表示 影响范围,可分为:模块、类库、方法等。
subject 表示 简短描述,最好不要超过 60 个字,如果有相关 Bug 的 Jira 号,建议在描述中加上。
提交到远程的 develop 分支的时候,必须提供了完整的测试代码,且经过结对同事的 review 或者评审。不能提交无测试的代码到版本库中。
合并到 develop 分支后,需要经过自动构建,将完整的测试代码执行完毕,且项目覆盖率达到 90% 才能合并到 main 分支中准备发布和推广。
新增代码或者修改代码的时候,需要提供对应的说明文档,如果是新增 api 或者对外的服务接口,需要提供使用文档,未提供对应的文档,不能合并到 develop 分支。
提交的代码需要有良好的可读性和逻辑性,不能过于混乱。代码提交到 develop 前,需要由非开发人员进行评审,查看代码的实现。
评审人员需要查看代码是否有冗余、圈复杂度是否过高(可以使用工具),如果有问题需要在这里进行回退,然后重新提交。同时需要检查测试代码是否有作假的情况。
经过一次完整的项目流程后,新增的功能才可以并入 main 分支中,此时需要打一个 tag 标签,然后更新版本号,然后提供包进行发布。