宝玉老师分享的 VSCode「Generate Commit Message」 一直在用,但如何让 AI 生成的 commit 严格遵循 Conventional Commits 规范(必须以 feat:、fix:、chore: 等开头)呢?

我亲自试了下:加一条提示词,就能让 AI 生成的 commit 严格遵循 Conventional Commits 规范(feat:, fix:, chore: 等)。
测试 10 次,全都完美合规!零失败!
配置入口
VSCode 设置里搜索 Commit Message Generation: Instructions,打开配置文件,粘贴下面的提示词即可。
配置方式
配置超简单,支持两种方式:
- Text 方式:直接在 Settings → Commit Message Generation: Instructions 粘贴提示词
- File 方式:项目根目录新建
.copilot-commit-message-instructions.md,写入相同提示词(多项目复用更方便)
"github.copilot.chat.commitMessageGeneration.instructions":[ { "file":".copilot-commit-message-instructions.md" }, { "text":"严格遵循 Conventional Commits 规范。格式:<type>(<scope>): <subject>。type 必须是:feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert 之一。subject 简洁明了,不超过50字符,首字母小写,不加句号。如有破坏性变更,必须在 body 中以 BREAKING CHANGE: 开头说明。" }]
复制代码
Text 方式提示词:
严格遵循 Conventional Commits 规范。格式:<type>(<scope>): <subject>。type 必须是:feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert 之一。subject 简洁明了,不超过 50 字符,首字母小写,不加句号。如有破坏性变更,必须在 body 中以 BREAKING CHANGE: 开头说明
复制代码
File 方式提示词:
# Git 提交消息规范本项目遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范。## 提交消息格式```
<type>(<scope>): <subject>
<body>
<footer>
```### 必需部分#### Type (类型)提交的类型必须是以下之一:- **feat**: 新功能 (feature)- **fix**: 修复 bug- **docs**: 仅文档更改- **style**: 不影响代码含义的更改(空格、格式化、缺少分号等)- **refactor**: 既不修复 bug 也不添加功能的代码更改- **perf**: 提高性能的代码更改- **test**: 添加缺失的测试或更正现有测试- **build**: 影响构建系统或外部依赖的更改(示例范围:webpack, npm, vite)- **ci**: 对 CI 配置文件和脚本的更改(示例范围:GitHub Actions, GitLab CI)- **chore**: 其他不修改 src 或测试文件的更改- **revert**: 回退之前的提交#### Subject (主题)- 使用简洁的语言描述本次提交的更改- 不超过 50 个字符- 使用中文或英文(保持项目一致)- 首字母小写- 结尾不加句号### 可选部分#### Scope (范围)用于说明提交影响的范围,例如:- **component**: 组件相关- **api**: API 相关- **router**: 路由相关- **store**: 状态管理相关- **utils**: 工具函数相关- **styles**: 样式相关- **deps**: 依赖项相关#### Body (正文)- 详细描述本次提交的动机和更改内容- 可以分多行- 应该说明"是什么"和"为什么",而不是"怎么做"#### Footer (页脚)- 用于关闭 Issue 或描述破坏性变更- Breaking Changes 必须在页脚中以 `BREAKING CHANGE:` 开头- 关闭 Issue 使用 `Closes #issue号`## 示例### 简单的功能添加```
feat(article): 添加文章搜索功能
```### 修复 bug```
fix(login): 修复登录状态未持久化的问题
```### 包含详细描述```
feat(editor): 支持 Markdown 实时预览
添加了一个新的编辑器组件,支持 Markdown 的实时预览功能。
用户在编辑时可以同时看到渲染后的效果,提升编辑体验。
Closes #123
```### 破坏性变更```
feat(api): 重构用户认证 API
BREAKING CHANGE: 用户认证接口从 /api/auth 迁移到 /api/v2/auth,
旧接口将在下一个版本中移除。客户端需要更新 API 端点。
```### 多个类型的示例```
refactor(utils): 优化文件上传工具函数
``````
perf(article): 优化文章列表渲染性能
``````
docs(readme): 更新项目安装文档
``````
style(component): 统一组件代码格式
``````
test(api): 添加文章 API 单元测试
``````
build(deps): 升级 Vue 到 3.4.0
``````
ci: 添加自动部署流程
``````
chore: 更新 .gitignore 配置
```## 注意事项1. **每次提交只做一件事**:如果一次更改涉及多个不相关的修改,应该拆分成多个提交2. **提交信息要清晰**:让其他开发者能够快速理解这次提交的目的3. **遵循团队约定**:如果团队有特殊的提交规范,以团队约定为准4. **及时提交**:完成一个功能点或修复一个问题后立即提交,不要积累太多更改5. **使用中文或英文**:保持项目提交消息语言的一致性## 工具支持推荐使用以下工具来辅助编写符合规范的提交消息:- **Commitizen**: 交互式提交工具- **commitlint**: 提交消息校验工具- **husky**: Git hooks 工具,配合 commitlint 使用## 参考资源- [Conventional Commits 官方文档](https://www.conventionalcommits.org/)- [Angular 提交规范](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit)复制代码
配置结束后,生成的 commit 就会严格遵循 Conventional Commits 规范了!
