智能生成 Git 提交信息工具。根据代码变更自动生成规范的 commit message、PR 描述和 ReleaseNotes。适用场景:生成 commit message、编写 PR/MR 描述、生成 Release Notes。
📝 Smart Commit — 智能 Git 提交信息生成是一项面向实际任务的技能,主要用于让每一次 commit 都有灵魂,不再 git commit -m "fix bug";🎯 核心功能;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
让每一次 commit 都有灵魂,不再
git commit -m "fix bug"。
当用户提供代码 diff 或描述变更内容时,执行以下流程:
1. 读取 diff 或变更描述 2. 分析变更类型(feat/fix/refactor/docs/style/test/chore/perf) 3. 识别影响范围(哪些模块/文件受影响) 4. 判断是否为 BREAKING CHANGE 5. 生成 commit message
输出格式:
( ): [可选 body:详细说明为什么这样做] [可选 footer:BREAKING CHANGE / 关联 issue]
当用户要求生成 PR 描述时:
1. 收集所有相关 commit 2. 按功能分组(新功能/修复/重构/文档) 3. 评估风险等级 4. 生成结构化 PR 描述
输出格式:
## 📌 变更摘要 [一段话概括这个 PR 做了什么] ## 🔧 主要变更 - **[类型]** 具体变更1 - **[类型]** 具体变更2 - ... ## 📁 影响范围 - `path/to/file` — 变更说明 - ... ## ⚠️ 风险评估 [低/中/高] — 说明原因 ## ✅ 测试建议 - [ ] 测试项1 - [ ] 测试项2 ## 🔗 相关 - Closes #xxx
当用户要求生成 Release Notes 或 Changelog 时:
1. 收集版本区间内所有 commit 2. 按类型分组(Features/Bug Fixes/Breaking Changes/其他) 3. 过滤无意义的 commit(如 "wip"、"fix typo") 4. 生成面向用户的版本说明
输出格式:
## [版本号] - 日期 ### ✨ 新功能 - 具体功能1 - 具体功能2 ### 🐛 修复 - 具体修复1 ### 💥 破坏性变更 - 具体变更及迁移指南 ### 🔧 其他改进 - 具体改进
当用户只是快速问"帮我写个 commit message"时:
直接输出一行或三行 commit message,不输出额外解释。提供 2-3 个选项让用户选择。
| Type | 用途 | 示例 |
|---|---|---|
feat |
新功能 | feat(auth): add OAuth2 login support |
fix |
修复 bug | fix(api): handle null response from upstream |
refactor |
重构(不改变功能) | refactor(utils): extract date formatting to helper |
docs |
文档变更 | docs(readme): update installation guide |
style |
代码格式(不影响逻辑) | style(lint): fix indentation in auth module |
test |
测试相关 | test(auth): add unit tests for token refresh |
chore |
构建/工具链 | chore(deps): upgrade webpack to v5 |
perf |
性能优化 | perf(query): add index for user search |
ci |
CI/CD 变更 | ci(github): add macOS build target |
build |
构建系统 | build(webpack): configure code splitting |
Scope 应该是模块名或功能域,不要用文件名:
auth, api, db, ui, paymentindex.js, controller, modelfix: update code 这种废话根据项目语言自动判断:
| 变更模式 | 影响范围 | 风险等级 |
|---|---|---|
| 只改文档/注释 | 低 | 🟢 低 |
| 新增独立功能模块 | 局部 | 🟢 低 |
| 修改工具函数/公共组件 | 广泛 | 🟡 中 |
| 修改 API 接口/数据模型 | 全局 | 🔴 高 |
| 修改配置文件/构建脚本 | 全局 | 🟡 中 |
| 修改认证/权限逻辑 | 全局 | 🔴 高 |
| 数据库 migration | 数据层 | 🔴 高 |
以下情况标记为 BREAKING CHANGE:
如果用户在工作目录中有 git 仓库,主动建议:
# 查看暂存区变更 git diff --cached # 查看工作区变更 git diff # 查看最近一次 commit git show HEAD
当用户说"帮我整理一下这周的 commit"时:
git log --oneline --since="1 week ago" 获取 commit 列表生成 commit message 后,可以顺便做:
生成的 commit message 必须满足:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章