Переглянути джерело

docs(kb): 新增 §4.4 Git 提交信息规范

tianyu.chu 2 тижнів тому
батько
коміт
934685cf0d
1 змінених файлів з 33 додано та 0 видалено
  1. 33 0
      kb/30-开发规范.md

+ 33 - 0
kb/30-开发规范.md

@@ -189,6 +189,39 @@ flowchart TD
 - 环境变量统一从 `conf/env.sh` 读取
 - 避免在业务脚本中重复环境检测逻辑(统一交给 Python 入口)
 
+### 4.4 Git 提交信息(Conventional Commits)
+
+每条 commit message 必须以 `<type>: <简短描述>` 开头,type 从下面固定列表里选一个;长说明放正文,与标题空一行。
+
+| type | 用途 | 示例 |
+|------|------|------|
+| `feat` | 新功能 / 新 job / 新表 | `feat(raw/crm): 新增 ods_crm_ent_contact_di` |
+| `fix` | Bug 修复 / 数据订正 | `fix(dwd/trd): 修复订单金额币种换算错误` |
+| `docs` | 只改文档(含 `kb/`、注释、README) | `docs(kb): 更新 21-命名规范.md §3.9 示例` |
+| `refactor` | 不改变外部行为的重构 | `refactor(dw_base): tendata → dw_base 模块改名` |
+| `perf` | 性能优化 | `perf(dws): 拆 tmp 表减少 shuffle` |
+| `test` | 只增/改测试 | `test(udf): 补 safe_cast_decimal 边界用例` |
+| `chore` | 构建、依赖、CI、打包 | `chore: 精简 requirements.txt` |
+| `style` | 空白 / 格式 / import 顺序(不改逻辑) | `style: sql_style.xml 全局格式化` |
+| `build` | 打包脚本 / publish.sh / Dockerfile | `build: publish.sh 支持 -env 参数` |
+| `ci` | DolphinScheduler / GitHub Actions 配置 | `ci: DS 工作流加质量校验节点` |
+| `revert` | 撤销某次提交 | `revert: feat(raw/crm): ...` |
+
+**约定**:
+
+1. **标题 ≤ 50 字符**,祈使句(「新增 xxx」而不是「新增了 xxx」)
+2. **scope 可选但推荐**:数仓项目里 scope 常取 `{层}/{域}`(如 `dwd/trd`)或模块名(`dw_base`、`bin`、`kb`、`conf`)
+3. **破坏性变更**:标题末尾加 `!`,正文以 `BREAKING CHANGE:` 开头说明迁移方式
+   - 例:`refactor(dw_base)!: 拆分 __init__.py` + `BREAKING CHANGE: 需要在调用处显式 import findspark`
+4. **一次提交做一件事**:不要把"新增表 + 顺手修 bug + 改文档"塞一起,按 type 拆成 3 个 commit
+5. **关联 TPAD / issue**:正文末尾加 `Refs: TPAD-1234` 或 `Closes: #42`
+
+**反例**(会被 reject):
+
+- `update` / `修改` / `提交` —— 没有 type,描述空洞
+- `feat: xxx\nfix: yyy\ndocs: zzz` —— 一条 commit 混多个 type
+- `feat: 新增了一大堆表` —— scope 和具体目标不明
+
 ## 5. 测试规范
 
 见 `90-重构路线.md` §6。核心要点: