
大家好,我是 Immerse,一名独立开发者、内容创作者、AGI实践者。
https://yaolifeng.com 也同步更新。我会在这里分享关于编程、独立开发、AI、出海、个人思考等内容。
如果本文对你有帮助,欢迎动动小手指一键三连(点赞、评论、转发),给我一些支持和鼓励,谢谢!
宝玉老师分享的 VSCode「Generate Commit Message」 一直在用,但如何让 AI 生成的 commit 严格遵循 Conventional Commits 规范(必须以 feat:、fix:、chore: 等开头)呢?

我亲自试了下:加一条提示词,就能让 AI 生成的 commit 严格遵循 Conventional Commits 规范(feat:, fix:, chore: 等)。
测试 10 次,全都完美合规!零失败!
VSCode 设置里搜索 Commit Message Generation: Instructions,打开配置文件,粘贴下面的提示词即可。
配置超简单,支持两种方式:
.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: 开头说明。"
}
]
严格遵循 Conventional Commits 规范。格式:<type>(<scope>): <subject>。type 必须是:feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert 之一。subject 简洁明了,不超过 50 字符,首字母小写,不加句号。如有破坏性变更,必须在 body 中以 BREAKING CHANGE: 开头说明
# 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 规范了!
