Git Commit Message Guide

内容纲要

本规范适用于所有代码仓库(前端、后端、Agent、Workflow、Dataset Pipeline 等)。
目标是提高代码可读性、提升协作效率,并支持自动生成 ChangeLog。


1. Commit Message 结构

所有提交信息必须遵循以下格式:

<type>(scope): <short summary>

<body>

<footer>

typesummary 为必填。scopebodyfooter 可按需使用。


2. Type(提交类型)

以下类型为代码开发统一规范:

类型 说明
feat 新功能、新模块
fix Bug 修复
refactor 重构,无功能变化
perf 性能优化
style 代码风格修复(无业务逻辑)
docs 文档更新
test 单测、集成测试
build 构建系统、依赖版本、工具链相关改动
ci CI/CD 配置变更
chore 其他不会影响功能的修改
revert 回滚某次提交

示例:

feat(agent): 新增工具调度器与调用链路收集模块
fix(dataset): 修复 JSONL 样本去重异常

3. Scope(影响范围)

Scope 需明确模块边界,以提升可读性。

代码开发推荐规范:

模块 Scope 名称
前端(Vue + VueFlow + ElementUI) ui, workflow-ui, dataset-ui
工作流编排(Flowise / Airflow) workflow, dag, scheduler
Agent 服务(LangGraph、工具链、LLM 调度) agent, tools, llm, memory
数据集模块(清洗、标注、增强、合成) dataset, clean, label, augment, synthesis
后端 API(FastAPI / Python) api, service, vectorstore, upload
向量库(Milvus / Chroma) vector, index
文档与配置 docs, config

示例:

fix(api): 修复文件上传失败的问题
refactor(agent): 优化节点状态机逻辑

4. Summary(标题写法要求)

必须满足:

  • 简短明了(不超过 60 字)
  • 使用动词短语描述动作
  • 不以句号结尾

示例:

feat(workflow): 支持节点依赖检测与可视化高亮

禁止示例:

update code
修改了一堆东西
修复问题

5. Body(内容,可选但推荐)

用于说明为什么做做了什么有没有破坏性变更

建议使用列表格式:

- 修复 token 限制未生效问题
- 增加规范化校验逻辑
- 移除 pipeline 中的重复节点检查

Body 写法示例:

feat(agent): 新增工具调用链跟踪能力

- 新增 trace_id 注入机制
- agent 执行节点均附带可追溯元数据
- 解决 workflow 调试中无法定位错误来源的问题

6. Footer(关联 Issue 或 Breaking Changes)

关联 Issue:

Issue: #123

声明破坏性变更:

BREAKING CHANGE: 删除旧版 dataset pipeline API

7. 常见提交示例

新功能

feat(workflow): 新增可视化 DAG 调试模式

修复 bug

fix(dataset): 修复样本合成时标签错位的问题

重构

refactor(agent): 抽象工具调用接口,支持插件化

性能优化

perf(vector): 优化向量相似度查询速度,提升 30%

文档

docs: 新增 API 使用手册

构建系统

build: 升级依赖到 Python 3.11

8. 统一 Commit 模板(推荐配置)

开发者可执行:

git config --global commit.template .gitmessage

并在项目根目录添加 .gitmessage

<type>(<scope>): <summary>

<body>

<footer>

9. 自动化校验(Commitlint)

代码开发使用 commitlint 进行自动校验。

项目根目录添加:

commitlint.config.js

module.exports = {
  extends: ['@commitlint/config-conventional'],
};

Husky Hook(Node 项目前端或工具链)

npx husky add .husky/commit-msg "npx commitlint --edit $1"

提交不规范将会直接被拦截。


10. 约定与原则总结

  • 提交必须可读、可追踪、可搜索
  • 提交必须服务于团队协作与长期维护
  • 单个 commit 应尽量小而独立
  • 一个 commit 仅处理一个主题(Single Responsibility)
  • 不提交 WIP(除非在个人分支)
  • 合并前必须 squash 零碎 commit

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward