VSCode默认不暴露commit template命令,需先打开源代码管理面板(Ctrl+Shift+G),再点击提交框右侧“…”或“Generate”按钮触发;若按钮不可见,须禁用git.enableSmartCommit并确保已暂存文件。

Ctrl+Shift+P 里搜不到 commit template 怎么办
不是插件没装,而是 VSCode 默认不暴露模板命令——它只在 Source Control 面板里触发。装了 git-commit-plugin 或 vivaxy.conventional-commits 后,快捷键本身不直接调出模板,得先打开源代码管理面板(Ctrl+Shift+G),再点提交框右侧的「…」或「Generate」按钮。
如果连这个按钮都不见,检查两点:
-
git.enableSmartCommit必须设为false(在设置里搜这项);否则 VSCode 会跳过所有插件逻辑,直接用文件名拼一句“update xxx” - 确认你已暂存文件(Staged Changes 区有内容),未暂存时提交按钮灰掉,插件也不激活
按 Ctrl+Enter 提交却绕过了规范校验
这是最常被忽略的路径陷阱:VSCode 的 Ctrl+Enter 提交走的是内部 commit 流程,能触发 husky + commitlint 钩子——但前提是钩子已正确挂载且未被插件绕过。
常见失效场景:
- 用了
Git Graph等第三方图形工具提交,它们调用的是裸git commit命令,不走 VSCode 的钩子链 - 终端里手敲
git commit -m "xxx",完全不经过任何插件或 husky -
commitlint配置了但没配husky install或npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
验证是否真生效:在终端执行 git commit --allow-empty -m "test",看是否报 subject must be lowercase 类错误。不报=钩子没挂上。
AI 生成的 commit 一键回填后仍被 reject
像 git-ai-commit 或 vscode-gptcommit 这类插件,生成速度很快,但默认输出常漏两个硬性规则:
-
scope写成UserAuth或API→ 必须小写、连字符分隔,如user-auth、api-client - header 和 body 之间没空行 →
feat(auth): add login后直接跟- check token...,会触发body-leading-blank规则失败
别依赖 AI 一锤定音。生成后务必手动检查第一行格式是否形如:fix(user-profile): fix null pointer in loadUser(),且下一行为空,再开始写 body。
想自定义 type 列表或加 emoji 怎么改
不同插件修改方式不同,但核心都在 JSON 配置里:
-
vivaxy.conventional-commits:改设置项conventionalCommits.types,填数组如[{"value":"feat","label":"✨ 新功能"},{"value":"debug","label":"? 调试"}] -
git-commit-plugin:需进插件安装目录,改out/config/commit-type.js文件里的CommitType数组(Windows 路径类似C:\Users\name\.vscode\extensions\redjue.git-commit-plugin-1.1.0\out\config\commit-type.js) - 注意:加了新
type不代表 commitlint 自动认——还得同步更新.commitlintrc.json中的types字段,否则钩子照样拒
scope 校验逻辑是硬编码在 commitlint 规则里的,改插件配置无法绕过,必须遵守小写+连字符规则。


















