跳转到内容

提交信息

在源代码管理视图中,标题栏的闪光图标运行 Twinny - Generate commit message。twinny 读取 diff,向对话提供者请求一条信息,并写入提交框供你在提交前编辑。

使用哪个 diff

有已暂存的变更就用它们;否则用所有未暂存的,状态栏会说明这一点。未跟踪的文件在暂存之前两者都不包含。先暂存你打算提交的文件,信息就会准确描述这些内容。该命令在第一个工作区文件夹中运行 git,该文件夹必须是仓库;如果 VS Code 的 Git 视图没有打开任何仓库,信息会复制到剪贴板。

diff 上限为 24,000 字符,在文件或块边界截断,以免小型本地模型不堪重负;模型会被告知省略了多少字符。非常大的提交请分批暂存和提交。

信息风格

默认提示(commit-message.hbs)要求:

  • 祈使语气(“Add”、“Fix”、“Refactor”),
  • 主题行少于 72 个字符,
  • 只在主题无法说明时才加简短正文,
  • 只输出信息本身,不带围栏、引号或解释。

由于小模型并不总是遵守,回复仍会被清理掉思考段落、多余的围栏、引号以及“Here is the commit message:”之类的开场白。只发送 diff,作为单条用户消息,不带系统消息。

定制

编辑 ~/.twinny/templates/commit-message.hbs 改变风格。常见改法:

  • Conventional Commits:要求 type(scope): subject 并列出允许的类型。
  • 工单引用:模板只拿到 diff,模型看不到分支名。要从分支名中取工单号,请在对话中附上 @git(其中包含分支)来写信息。
  • 语言:要求用团队的语言写信息。

机制见提示词模板。

在对话中

也可以在对话中附上 @git 来写提交信息,想先讨论修改时很方便。日常情况下源代码管理按钮更快。