conventional commits插件仅干预vscode图形界面提交流程,不拦截终端git commit -m;安装后必须重启vscode才能生效,scope须小写且代表逻辑边界而非路径,不替代commitizen或husky。

Conventional Commits 插件在 VSCode 中只干预图形界面提交流程,不拦截终端命令;它不替代 commitizen 或 Husky,而是轻量级输入辅助工具。
Conventional Commits 插件安装后为何没反应
插件必须重启 VSCode 才能监听 Source Control 面板的提交动作。未重启时,点击 ✔️ 或执行 Git: Commit 命令不会触发提示。
- 确认安装的是作者为
vivaxy的Conventional Commits插件,不是gitmoji或commitizen相关插件 - 检查是否被其他 Git 插件劫持了提交入口(如某些“智能提交”类插件)
- 插件默认启用,无需额外配置即可在提交框中显示
type(scope): subject格式提示
scope 必须小写但项目目录名是 PascalCase 怎么办
scope 不是路径映射,而是逻辑模块边界。插件报 scope must be lower case 是合规校验,不是让你改文件夹命名。
- 把
src/components/UserProfile映射为components或ui,而非userprofile或UserProfile - 团队约定所有 API 层变更统一用
api,哪怕改动分散在services/和hooks/下 - 只允许连字符分隔:
user-profile✅,user_profile❌,userProfile❌
为什么 git commit -m 完全绕过插件校验
插件设计定位就是辅助输入,不是守门员。它只注入到 VSCode 内部的 Git 提交流程中,对终端命令无感知。
- 这是预期行为,不是 bug
- 若需强制规范,应配合
commitlint+Husky的commit-msg钩子,在提交前做正则校验 - VSCode 中用
Ctrl+Shift+P→Git: Commit才走插件流程;直接敲git commit -m走的是原生 Git 流程
如何让模板和插件共存且不冲突
插件与 .gitmessage 模板可并存,但作用点不同:插件控制输入格式提示,模板提供预填充内容。二者不打架,但需注意优先级。
- 先设置
git config commit.template .gitmessage,确保模板生效 - 插件会在 VSCode 提交框中先加载
.gitmessage内容,再叠加格式引导(如占位符提示) - 若模板里已含
feat(auth):这类前缀,插件可能不再弹出类型选择面板——它只在空输入或非规范开头时主动介入
真正容易被忽略的是:插件不校验 body 或 footer,也不解析 closes #123 类关联语法;这些得靠 commitlint 或 CI 阶段补全。别把它当全自动守门员,它只是帮你少打几个字母的键盘助手。











