以 spring-boot项目 release 为例,高质量的提交信息,可以自动化生成 release log。

一、Git 提交规范基础
1.1 Conventional Commits 规范介绍
Conventional Commits 是一种广泛使用的 Git 提交信息规范,它通过简单的格式约定让提交信息更加清晰易懂。这个规范最初由 Angular 团队提出,现已成为开源社区的事实标准(规范详情)。 采用这个规范的主要好处是:- 提交历史更加清晰,方便团队成员快速了解代码变更
- 可以自动生成版本更新日志(Changelog)
- 根据提交类型自动判断版本号变化
- 便于代码审查,审查者能快速理解变更意图
1.2 基本格式与组成
标准的提交信息格式如下:-
type: 必选,表示提交类型
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式(不影响代码运行的变动)
- refactor: 重构
- test: 测试相关
- chore: 构建过程或辅助工具的变动
- scope: 可选,表示影响范围,如模块名称
- description: 必选,简短描述,使用祈使语气
- body: 可选,详细说明
- footer: 可选,用于说明重大变更(BREAKING CHANGE)或关闭 Issue
笔者团队使用 Conventional Commits 规范提交信息,效果如下:

二、AI Commits 技术实现

-
变更分析
- 获取 Git 暂存区的变更(git diff —staged)
- 分析变更的文件和代码内容
-
上下文收集
- 获取最近的提交历史(默认10条)
- 提取项目的提交风格特征
-
提示词构建
- 根据变更内容构建提示词
- 加入项目特定的规范要求
-
LLM 调用
- 发送提示词到 LLM 服务
- 接收并解析生成的提交信息
-
后处理
- 格式化生成的提交信息
- 应用自定义规则和过滤器
三、实践应用指南
3.1 工具选型对比
功能特性 | GitHub Copilot | AI Commits | Cursor | 通义灵码 |
---|---|---|---|---|
模型支持 | 固定GPT-3.5 | 可自由扩展 | 固定 Claude-3.5-sonnet | 固定 通义千问 |
提示词定制 | 否 | 支持 | 否 | 否 |
响应速度 | 快速) | 中等 | 快速 | 快速 |
IDE 支持 | 全平台 | 仅限 JetBrains 系列 | 仅限 Cursor IDE | 全平台 |
订阅成本 | 需 Copilot 订阅 | 仅需模型 API 费用 | 需 Cursor Pro 订阅 | 免费 |
- 模型灵活性:支持自由扩展不同的 LLM 模型,可以根据团队需求和成本预算选择最适合的模型。
- 提示词定制:独特的提示词定制能力让团队可以统一提交规范,确保代码库的一致性。
- 成本效益:仅需支付模型 API 调用费用,相比其他工具的订阅制更具性价比(通义灵码效果堪忧)。
- 团队协作:通过统一的提示词模板和模型配置,可以确保团队成员生成风格一致的提交信息。
3.2 IntelliJ AI Commits Plugin 配置指南
- 插件安装:
- 在 Marketplace 搜索安装
AI Commits
- 重启 IDE 激活插件
- 在 Marketplace 搜索安装

- 模型配置:
笔者测试 百炼的qwen 系列、火山的豆包系列,目前推荐的还是deepseek 的模型。
- DeepSeek-V3(性价比首选,上下文64k,足够使用,指令遵循效果好)
- Claude-3.5-Sonnet(家里有条件的,可以考虑)
