Git / 版本控制

Git 提交信息生成器

填写字段构建消息,或切换到校验检查完整文本;两种输入分别保留。

Git 提交信息生成器

消息输入

候选类型仅供参考,也可以输入自定义类型。

以 Refs: #42 或 Closes #42 开头,后续普通行接续前一个值。

消息结果

消息仅在当前浏览器处理,不读取仓库或发送网络请求。

输出选项

检查 Conventional Commits 1.0.0 结构;不检查项目规则,不强制 50/72 字符。最多 20,000 个 UTF-16 单元。

请输入描述或完整消息。

准备提交时,最容易漏掉的往往不是类型名称,而是范围后的标点、正文前的空行,以及是否真的需要破坏性标记。Git 提交信息生成器把这些信息分开填写并组合展示。已有消息也可以直接检查;切换模式会保留另一边的草稿,不必为了检查一段文本重新填写所有字段。

为什么使用 Git 提交信息生成器

让段落边界一目了然

Git 提交信息生成器会补上标题标点以及标题、正文、页脚之间的空行。范围自动放入括号,简短描述保留在首行,正文内部的分段不被压缩。查看结果时可以同时确认标题长度和识别出的页脚数量,避免把说明误写进标题。

不同颜色的类型、范围与描述组合成标题,正文和页脚保持独立区块。

把破坏性声明单独核对

普通 feat 消息表示次版本变化,但加上 ! 或有效的 BREAKING CHANGE 页脚后就声明主版本变化。界面会显示这个差异;它不会读取代码来证明兼容性,也不会因为描述里出现“破坏性”三个字就自动升级声明。

两张提交卡分别表示兼容改动与带琥珀色破坏性标记的改动,后者对应更大的版本跨度。

先确认含义,再检查结构

01

常用类型只是输入建议

下拉建议包含 feat、fix、docs 等常用名称,也可以直接填写团队自定义类型。先判断改动的实际含义,再选择类型;Commit 规范生成器无法仅凭短描述判断代码是否真的修复了问题。

02

在页脚字段写明结构

正文允许多段文字。页脚第一行应使用 Refs: #42 或 Closes #42 这样的格式,后续普通行接续前一个值,新的合法标记才开启下一项。构建器负责补空行,用户负责页脚内容。

03

留意何时需要重新处理

自动处理会等待 350 毫秒。关闭开关后显示操作按钮,也可以按 Ctrl/Cmd + Enter。字段、完整文本或 ! 选项改变时,旧结果立即失效;完成新一轮提交信息校验后才能导出。

从标题到多行页脚

自定义类型与原有大小写

约定式提交允许常用列表之外的类型。工具会保留 type、scope 和描述的大小写,FEAT 与 feat 在声明意图上相同。中文描述可以直接使用;标题长度只是计数,不会在 50 或 72 字符处被截断或判错。

完整消息检查与定位

校验模式检查标题、必需空行以及能够识别的页脚。错误保留具体行列,编辑器标出对应行。正文中的网址和普通冒号句子不会直接成为格式错误;从其他工具复制来的文本也不会被自动反填或改写成表单。

两种有效的 breaking 标记

! 放在类型或范围之后、冒号之前;单独使用时不要求额外页脚。也可以写 BREAKING CHANGE: 说明,或等价的 BREAKING-CHANGE: 说明。这个特殊标记必须大写,页脚值可以跨行,复制与下载只包含消息本身。

格式通过意味着什么

不代替仓库规则
结构有效不代表通过项目的 commitlint 或提交钩子。本页不读取配置,不强制小写、祈使句或类型白名单,也不能判断 feat 与 fix 是否符合真实代码。团队要求需要在仓库中另行验证。
一次只检查一条消息
输入最多 20,000 个 UTF-16 单元,构建后的标点和分隔空行也计入上限;超限会拒绝而不是截断。CRLF 与 CR 会转为 LF;构建时仅移除正文和页脚两端的换行,内部段落及空格保留。
页脚识别存在明确边界
完整文本中,空行后的合法标记会开启页脚区,因此 Note: text 也可能被识别为页脚;带冒号的任意句子仍可作为正文。专用页脚字段的首行必须有合法标记及值,工具不会猜测或修正错误的分隔符。
不操作 Git 或计算发布版本
本页不执行提交、修改历史、导入 diff、生成 shell 命令或用 AI 拟题,也不保存历史或生成分享链接。major、minor、patch 只说明消息的声明;其他类型没有隐式版本影响,撤销提交也不会自动抵消旧声明。
替换前可以检查并撤销
示例与清空只影响当前模式。已有内容时先显示替换预览及 UTF-16 数量,应用后可以撤销一次,同时恢复输入、! 选项与结果。切换模式本身不覆盖另一份草稿,原始消息也不会被自动修复。

Git 提交信息生成器常见问题

提交标题中的类型是大写还是小写?

规范允许任意大小写,工具会保留原文,并以不区分大小写的方式解释类型。团队可以约定统一风格。需要特别注意的是 BREAKING CHANGE 与 BREAKING-CHANGE,这两个破坏性页脚标记必须使用大写。

如果提交符合多种类型我该如何操作?

能够拆开时,优先把不同目的的修改分成多次提交。本工具每条消息只有一个类型字段,正文可以补充背景;但选择 feat 并不能证明其中所有改动都属于新增功能,兼容性影响仍需单独核对。

破坏性变更如何标记?

可以在类型或 scope 后、冒号前添加 !,也可以在页脚写 BREAKING CHANGE: 并给出说明。BREAKING-CHANGE 同样有效。有 ! 时不强制附加页脚;没有标记时,描述中提到 breaking 并不会自动成为破坏性声明。

这和 SemVer 有什么关联呢?

fix 对应补丁意图,feat 对应次版本意图,! 或有效破坏性页脚优先对应主版本意图。本工具只显示这一层含义;没有当前版本、历史和发布策略,因此不输出新的版本号,也不保证实际发布会采用该级别。

中文描述还是英文描述更好?

两种语言都可使用,描述、正文和页脚值可以写中文。重点是让维护者理解改动,遵守团队习惯。类型和结构分隔符仍需符合约定,特殊标记 BREAKING CHANGE 不能翻译成中文来替代。

有需要核对的提交格式?

提交之前再看一遍消息

回到 Git 提交信息生成器,检查消息声明与真实改动是否一致,确认当前结果有效后再复制到提交编辑器。