git-ai-commit插件能基于中文描述自动生成功能规范的Conventional Commits,如feat(ui): add login button with loading state,支持一键填入VSCode提交框,5秒内完成,需配置AI后端并确保Git仓库已初始化。

git-ai-commit 自动生成 Conventional Commits
想让 Git 提交信息自动符合 feat、fix、refactor 等规范?git-ai-commit 插件能直接解决,不用手写模板或查文档。
它不是简单替换关键词,而是基于你输入的中文描述(比如“加个登录按钮”),调用本地或远程 AI 模型生成完整 commit message,例如:feat(ui): add login button with loading state。生成后一键填入 VSCode 提交框,整个流程 5 秒内完成。
- 必须确保当前工作区已初始化 Git 仓库,否则插件图标灰显
- 首次使用需配置 AI 后端(如 OpenAI 兼容 API 或 DeepSeek),不填则 fallback 到轻量本地模型,语义理解较弱
- 团队共用时,建议统一
conventionalcommits.org规范版本,避免chore和build类型被不同人混用
koroFileHeader 配置中文函数注释模板
按 /** 回车没反应?大概率不是插件问题,而是 JSDoc 触发机制不匹配中文上下文——koroFileHeader 绕过语言服务限制,靠纯模板驱动,对中文变量名和描述支持最稳。
关键配置在 settings.json 中,注意两点:一是 "Description" 这类字段可直接写中文(如“用户登录校验逻辑”),二是变量占位符仍须用英文名(如 $description$),否则无法被替换。
- 新建文件时按
Ctrl+Alt+I插入文件头;光标停在function getUser(id) {行,按Ctrl+Alt+T生成带中文占位的参数注释 - 若函数用箭头语法定义(
const getUser = (id) => {}),Document This 类插件会失效,但 koroFileHeader 仍能识别 - 模板中不要用
/** @param {string} name - 用户姓名 */这种带类型标注的写法,VSCode 的 TypeScript 类型推导可能干扰中文字段渲染
Doxygen Documentation Generator 生成 C/C++/Python 注释块
在 C++ 函数声明前按 Option+Cmd+D 没反应?常见原因是插件未识别语言模式或光标位置不对——它只响应“定义行正上方空行”,不能在函数体内或已有注释中间触发。
插件默认生成 @brief 结构,但 Python 场景下需手动设 python.docstringGenerator.style 为 google 或 numpy,否则 """ 回车无效;C++ 项目则必须将 Doxygen: Language 设为 cpp,否则生成的 @param 字段会被忽略。
- 快捷键冲突时,改用命令面板执行
Doxygen: Generate Comment,提示No valid symbol found说明光标没落在可解析符号(如void init();)正上方 - 生成后高亮字段需手动填写,插件不自动提取参数名或返回值类型,尤其解构参数(
({ a, b }) => {})需人工补全 - 生成的注释块默认用
/** */,若项目要求///单行风格,需修改插件模板或换用其他工具
prettier + husky 实现提交前自动格式化
保存时格式化只是第一步,真正防破防的是提交前拦截——prettier 和 eslint 在编辑器里跑,而 husky + lint-staged 在 Git 钩子里跑,两者权限和执行环境完全不同。
配置核心在 package.json 的 lint-staged 字段:它只处理暂存区(git add 后)的文件,不会碰未跟踪或已提交的内容,避免误格式化第三方代码。
-
npx husky add .husky/pre-commit "npx lint-staged"必须在项目根目录执行,否则钩子脚本路径错乱 - 若
prettier --write报错 “No parser could be inferred”,说明文件类型未在lint-staged配置中声明(如漏了*.md) - 团队协作时,
.prettierrc和.eslintrc.js必须纳入版本管理,否则不同人本地配置差异会导致提交冲突
自动化越深,越要盯住边界:AI 生成 commit 是辅助,但语义准确性仍依赖人工校验;中文注释模板能省事,但业务逻辑描述还得自己写;提交前格式化很爽,但钩子失败时别直接跳过——那条报错信息往往就是线上 bug 的伏笔。



















