一次配置,让 Copilot 为所有项目生成中文 Commit Message
最近发现 VS Code 里有一个很实用,但很多人还没用上的能力:
你可以专门给 Copilot 的 Generate Commit Message 配自定义规则。
这意味着我们终于不用只靠 github.copilot.chat.localeOverride 碰运气了,而是可以直接告诉 Copilot:
- 提交信息必须用简体中文
- 必须按固定格式输出
- 只能使用指定的 type 和 emoji
- 只输出最终结果,不要解释
很多人第一反应是把配置写进项目里的 .vscode/settings.json。
这样当然能用,但它只对当前仓库生效。
如果你的目标是:
只配置一次,之后所有项目都默认生成中文 commit message
那正确做法不是工作区配置,而是写进 VS Code 的 User Settings。
先说结论
想让所有项目都生效,最稳妥的方式是:
- 打开 VS Code 命令面板(Windows / Linux 用
Ctrl + Shift + P,macOS 用Cmd + Shift + P,或者直接按F1) - 执行
Preferences: Open User Settings (JSON)

- 把下面这段配置放进去
{
"github.copilot.chat.localeOverride": "zh-CN",
"github.copilot.chat.commitMessageGeneration.instructions": [
{
"text": "Always generate git commit messages in Simplified Chinese."
},
{
"text": "Follow this exact format: <emoji> <type>: <中文简短描述>."
},
{
"text": "Use only these types and emojis: ✨ feat, 🐛 fix, 📝 docs, ♻️ refactor, ⚡ perf, 🧑💻 dx, 🔨 workflow, 🏷️ types, 🚧 wip, ✅ test, 🔨 build, 👷 ci, ❓ chore, ⬆️ deps, 🔖 release."
},
{
"text": "Pick the single most appropriate type based on the main intent of the staged changes."
},
{
"text": "Do not output English. Do not output explanations. Do not output bullet points. Output only the final commit message."
},
{
"text": "Keep the subject concise, natural, and professional in Chinese."
}
]
}

配完以后,当前 VS Code 用户配置下打开的项目都会默认带上这套规则。
你平时只需要:
- 先
git add暂存改动 - 打开 Source Control
- 点击 Copilot 的 Generate Commit Message
它就会尽量按这套中文规范来生成提交信息。


为什么 .vscode/settings.json 不能“一次配置,全部项目生效”
这里最容易搞混的是 User Settings 和 Workspace Settings。
.vscode/settings.json 本质上是工作区设置,也就是仓库级配置。
它的优点是:
- 可以随项目一起提交到 Git
- 团队成员拉代码后能共享同一套规则
- 很适合团队统一规范
但它的缺点也很明显:
- 只对当前项目有效
- 你新建一个仓库,还得再配一次
- 如果你同时维护很多项目,会很重复
所以,如果你的诉求是“我自己电脑上的所有项目都启用”,答案就是:
不要只改 .vscode/settings.json,要改 User Settings。
localeOverride 能不能单独解决问题
不能只靠它。
github.copilot.chat.localeOverride 官方说明得很明确,它主要用于控制 Chat 响应语言。
也就是说,它能提高 Copilot 输出中文的概率,但它并不是专门为 commit message 格式控制设计的。
真正决定提交信息输出规则的,是:
github.copilot.chat.commitMessageGeneration.instructions
所以比较稳的做法是:
localeOverride负责把整体语言环境尽量拉到中文commitMessageGeneration.instructions负责约束提交信息格式、语言和输出风格
这两个可以一起配,但真正的关键是后者。
如果你想团队统一,而不是个人全局
如果你是想让某个仓库里的所有协作者都用同一套规则,那就不要放在 User Settings 里,而是放在仓库里。
比较推荐的做法是:
先在项目的 .vscode/settings.json 里引用一个 Markdown 规则文件:
{
"github.copilot.chat.commitMessageGeneration.instructions": [
{
"file": ".github/commit-message-instructions.md"
}
]
}
然后新建 .github/commit-message-instructions.md:
# Git Commit Message Rules
- 所有 git commit message 必须使用简体中文。
- 严格使用以下格式输出:`<emoji> <type>: <中文简短描述>`
- 只允许使用以下类型与前缀:
- `✨ feat: 添加新功能`
- `🐛 fix: 修复 bug`
- `📝 docs: 对文档进行修改`
- `♻️ refactor: 代码重构`
- `⚡ perf: 提高性能的代码修改`
- `🧑💻 dx: 优化开发体验`
- `🔨 workflow: 工作流变动`
- `🏷️ types: 类型声明修改`
- `🚧 wip: 工作进行中`
- `✅ test: 测试用例添加及修改`
- `🔨 build: 构建系统或依赖变更`
- `👷 ci: CI 配置变更`
- `❓ chore: 其它杂项修改`
- `⬆️ deps: 依赖项修改`
- `🔖 release: 发布新版本`
- 只输出最终 commit message,不要附加解释。
- 优先根据本次暂存改动的主要目的选择 type,不要罗列多个 type。
- 描述要短、准、清晰,避免“更新代码”“调整内容”这类空话。
- 默认单行输出。
这个方案适合团队,但它解决的是“当前仓库统一规范”,不是“所有项目一次生效”。
所以你可以这样理解:
- 想个人全局生效,用 User Settings
- 想团队仓库共享,用 Workspace Settings + Markdown 规则文件
实际使用时的两个提醒
1. 这个功能已经很正规,但不保证 100% 每次都听话
从 VS Code 1.96 开始,官方已经支持对 commit message 生成配置专门的 instructions。
但从公开 issue 来看,Copilot 在某些情况下还是可能:
- 忽略语言要求
- 忽略格式要求
- 偶尔输出英文
所以这套方案的定位应该是:
当前最官方、最正规的配置方式,但不是绝对强制。
如果你碰到它偶尔不听话,最稳的兜底办法是直接在 Copilot Chat 里手动发指令,例如:
请根据当前已暂存改动,严格按以下格式生成一条 git commit message:
<emoji> <type>: <中文简短描述>
只允许使用这些类型:
✨ feat
🐛 fix
📝 docs
♻️ refactor
⚡ perf
🧑💻 dx
🔨 workflow
🏷️ types
🚧 wip
✅ test
🔨 build
👷 ci
❓ chore
⬆️ deps
🔖 release
只输出最终结果,不要解释。
这时候通常比“一键生成”更容易控格式。
2. 先看看你项目有没有 commitlint 或发版校验
如果你的项目接了:
commitlintsemantic-release- CI 中的 Conventional Commits 校验
那就要先确认它们是否接受 emoji + type 这种风格。
因为很多工具默认识别的是标准 Conventional Commits,例如:
feat: 新增文章发布流程
fix: 修复构建脚本错误
而不一定接受:
✨ feat: 新增文章发布流程
如果规则链路没有打通,就会出现一种很尴尬的情况:
Copilot 生成得挺漂亮,但 CI 不让你过。
所以在正式推广之前,最好先检查一下项目里的 commitlint.config.*、Git hook 或 CI 校验规则。
多台机器怎么办
如果你不只在一台电脑上用 VS Code,还想把这套配置带到别的设备,最省事的方式是开启 Settings Sync。
这样你的用户设置会跟着 VS Code 账号同步,换机器后不用再手敲一遍。
当然,如果你本来就习惯把规则放仓库里,那仓库级方案也能天然共享给团队成员。
最后总结
这件事真正的关键,不是“怎么在当前项目里配”,而是先分清楚你要解决的是哪一类问题:
- 想让当前仓库生效,用
.vscode/settings.json - 想让所有项目一次生效,用 User Settings JSON
- 想让团队协作统一,用 仓库内规则文件
如果你只是想给自己电脑上的所有项目都启用中文 commit message,那么最推荐的落地方式其实很简单:
把 github.copilot.chat.commitMessageGeneration.instructions 写进 User Settings。
这才是真正意义上的“一次配置,所有项目启用”。
参考链接
- VS Code 1.96 更新说明
- Copilot Settings 参考文档
- Copilot Custom Instructions 文档
- VS Code Settings 文档
- 相关 issue:commit message 有时不稳定遵循指令
相关文章推荐:

浙公网安备 33010602011771号