ZucchiniY / git-project

使用 Git 管理项目,以及 Git Message 范例模板

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

规范项目分支

主分支

项目主分支包括三个固定分支, main 分支、 develop 分支和 test 分支。其它分支都需要在合并到 develop 分支后进行删除。

  • 主生产分支 main :在开发过程中,不允许直接提交,只能由 develop 分支合并进来。
  • 主开发分支 develop :所有的功能性分支,都应该先合并到 test 分支,测试通过后,再合并到 develop 分支中,经过评审后才能由 develop 分拣到 main 分支。
  • 主测试分支 test :所有新的功能代码提交后,都需要先提交到 test 分支,然后编写测试代码,覆盖率达标后,才能合并到 develop 分支中。

分支命名

x 代表一个具体的名称,可以是类名、模块名、功能名等。

  • 新增功能: feature-x ,功能上线后移除分支。
  • 修复问题: bug-x ,修复问题并通过测试后,需要合并到 develop 中,在 develop 分支中测试通过,才可以将代码分别分拣到 maintest 两个分支中。
  • 重构代码: 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 标签,然后更新版本号,然后提供包进行发布。

About

使用 Git 管理项目,以及 Git Message 范例模板

License:MIT License