登录
首页 >  科技周边 >  人工智能

一次配置,Copilot自动生成中文CommitMessage

时间:2026-04-25 11:19:04 252浏览 收藏

你是否还在为每次提交代码时手动编写中文 commit message 而烦恼?本文揭秘 VS Code Copilot 的隐藏能力:只需一次配置用户级设置,就能让所有项目自动、稳定地生成符合中文规范的 Conventional Commits——支持简体中文、固定 emoji+type 格式(如 ✨ feat: 添加新功能)、严格禁用英文和解释性文字,真正实现“配一次,全局生效”。不同于易被忽略的 localeOverride,核心在于官方支持的 commitMessageGeneration.instructions 指令系统,搭配 Settings Sync 还能跨设备同步,既适合个人提效,也兼容团队协作方案,是当前最正规、最实用的 AI 辅助提交实践。

最近发现 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)
一次配置让Copilot为所有项目生成中文CommitMessage
把下面这段配置放进去
{  "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: : ."    },    {      "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."    }  ]}
一次配置让Copilot为所有项目生成中文CommitMessage

配完以后,当前 VS Code 用户配置下打开的项目都会默认带上这套规则。

你平时只需要:

git add 暂存改动打开 Source Control点击 Copilot 的 Generate Commit Message

它就会尽量按这套中文规范来生成提交信息。

一次配置让Copilot为所有项目生成中文CommitMessage
一次配置让Copilot为所有项目生成中文CommitMessage

为什么 .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 必须使用简体中文。- 严格使用以下格式输出:`: `- 只允许使用以下类型与前缀:  - `✨ 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:: 只允许使用这些类型:✨ feat? fix? docs♻️ refactor⚡ perf?‍? dx? workflow?️ types? wip✅ test? build? ci❓ chore⬆️ deps? release只输出最终结果,不要解释。

这时候通常比“一键生成”更容易控格式。

2. 先看看你项目有没有 commitlint 或发版校验

如果你的项目接了:

commitlintsemantic-releaseCI 中的 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 有时不稳定遵循指令

相关文章推荐:

智谱 GLM-4.7 编程第一LangChain4j 结构化输出实战让 AI 不再失忆Claude Code 免费指南Agent Skills,让 AI 像老员工一样靠谱

今天关于《一次配置,Copilot自动生成中文CommitMessage》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>