提交信息写得太随意,CHANGELOG 生成不了、版本号靠拍脑袋?按 Conventional Commits 选好 type、scope 与破坏性标记,这里帮你拼出规范提交信息并算出对应的 SemVer 版本影响;已有提交也能粘进来逐项体检。
按 <type>[scope][!]: <description> 结构生成规范的提交信息,或粘贴已有提交信息逐项体检。全部在本地处理,不上传任何内容。
随手写的 update、fix bug、改了点东西,人看着还行,机器却完全读不懂。而一旦提交信息有固定结构,就能自动做事:扫描 feat / fix 自动生成 CHANGELOG、根据 BREAKING CHANGE 自动决定版本号该不该跳 major、按 scope 统计哪些模块改动最频繁、在 CI 里拦截不合规的提交。
Conventional Commits 就是目前最通行的这套结构,v1.0.0 的定义很简洁:
<type>[optional scope][optional !]: <description>[optional body][optional footer(s)]
关键点:type 是名词(feat、fix…),scope 用括号紧跟 type,! 表示破坏性变更(也可用页脚 BREAKING CHANGE:),描述紧跟冒号后的空格;正文与页脚各自前要有空行。它和 SemVer 的对应关系也是规范明确写死的:fix → PATCH、feat → MINOR、BREAKING CHANGE → MAJOR。
本工具做两件事:生成——按规范拼出提交信息并告诉你这次改动会推动哪个版本号;校验——把已有提交信息拆成 type / scope / 描述 / 正文 / 页脚,逐项检查是否合规。所有处理都在浏览器本地完成,不上传任何内容。规范只明确了上述三种版本映射,perf、refactor 等其他类型的版本影响属于社区惯例,本工具给出的是参考值,请以你团队的发布流程为准。
feat、修 bug 用 fix、改文档用 docs……auth、parser),描述用小写开头、不加句号的祈使句,如 add sso login entry。! 并补上 BREAKING CHANGE: 页脚。Refs: #1288)或审阅人(Reviewed-by: Alice)。-m 的终端命令。feat: add export button 而不是 feat: added export button。user-profile;不确定就留空,scope 是可选的。! 与页脚 BREAKING CHANGE: 等价,二选一即可;两者都出现也没问题。规范里该 token 为大写,本工具做了大小写宽容处理。Acked-by 而不是 Acked by;BREAKING CHANGE 是唯一例外。feat 与 refactor 两个提交,否则版本号该怎么升会变得含糊。revert 类型建议写清被回滚的提交:revert: feat(auth): add sso login entry,并在正文说明原因。docs、test、chore 等通常不触发发布,本工具的这类结论是社区惯例参考。<type>[optional scope][optional !]: <description>,可选地跟一个空行加 body,再可选地跟一个空行加若干 footer。type 必须是名词(feat、fix 等),description 必须紧跟在冒号与空格之后。示例:fix(parser): handle empty input。!(feat(api)!: remove legacy field);② 在页脚写 BREAKING CHANGE: 说明。规范里两者含义相同,都表示不兼容变更并对应 major 版本。实践中推荐两个都写:! 让列表视图一眼看到,页脚则说明迁移方式。feat / fix 之外的类型(如 docs、chore)都来自社区约定而非规范本身。关键是团队内统一:建议把可选 type 写进 CONTRIBUTING,并用 commitlint 在 CI 里强制校验。本工具内置的 11 类是目前最通行的集合,不在列表内时会给出提示但不会判为错误。git log 列表更整齐,结尾不加标点避免多余字符。本工具把它们标为「⚠️ 可优化」而非「❌ 不合规」,不影响是否通过校验。parser、api),不确定时留空完全合规;body 用来解释「为什么这么改」,一句描述能说清时也可以省略。但要注意:一旦写了 body 或 footer,前面必须有空行,否则会被解析成同一段。-m 让 Git 把每段当作独立段落,段落之间自动插入空行:git commit -m "feat: xxx" -m "正文说明" -m "Refs: #1288"。点「📋 复制 git 命令」即可拿到拼好的命令。更省事的写法是直接把完整信息写进编辑器(git commit 不带 -m),结构更直观。审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!