无需登录 数据私有 本地保存

Git提交信息构造器 - 语义化模板

12
0
0
0

Git 提交信息构造器

基于 Conventional Commits 规范,快速生成语义化提交信息

feat 新功能
🐛 fix 修复Bug
📝 docs 文档
💄 style 格式
♻️ refactor 重构
perf 性能
test 测试
📦 build 构建
👷 ci CI/CD
🔧 chore 杂务
revert 回滚
建议控制在50字符以内,不要以句号结尾
git commit -m
feat: 在此处输入描述...
最近记录
暂无历史记录,复制提交信息后会自动保存到这里
常见问题与知识点

约定式提交是一种Git提交信息的轻量级规范,由Angular团队推广。它规定了提交信息的结构格式:<type>(<scope>): <subject>,使得提交历史更易读、可自动化处理(如生成CHANGELOG、触发CI/CD流程、自动版本号管理等)。该规范也是语义化版本(SemVer)的基础。

  • feat:新功能(feature)——新增一个面向用户的功能
  • fix:修复Bug——修复一个面向用户的缺陷
  • docs:文档变更——仅修改文档,不涉及代码逻辑
  • style:代码格式——不影响代码运行的格式调整(空格、分号、缩进等)
  • refactor:重构——既不修复Bug也不新增功能的代码重构
  • perf:性能优化——提升性能的代码变更
  • test:测试——添加或修改测试代码
  • build:构建——影响构建系统或外部依赖的变更
  • ci:CI/CD——持续集成/持续部署的配置变更
  • chore:杂务——其他不影响源码的琐碎工作(如更新依赖、构建脚本等)
  • revert:回滚——撤销之前的某次提交

有两种方式标记破坏性变更:
① 在类型后添加 !,例如 feat!(api): 重构用户认证接口
② 在提交信息的footer区域添加 BREAKING CHANGE: 前缀,后跟详细说明。
两种方式可以同时使用。破坏性变更意味着该提交不向后兼容,通常会导致主版本号升级(如从1.x升级到2.0)。

使用语义化提交规范后,可以通过工具(如 standard-versionsemantic-releasecommitlint 等)自动解析提交历史,按类型分类生成结构化的CHANGELOG。feat类型归入"新功能",fix类型归入"Bug修复",perf归入"性能优化",BREAKING CHANGE会被特别标注。这大大减少了手动维护CHANGELOG的工作量。

  • 使用祈使语气,如"添加"而非"添加了"
  • 英文字符建议控制在50个字符以内
  • 不要以大写字母开头(英文)
  • 不要以句号结尾
  • 简洁明了地描述"做了什么"以及"为什么"
  • 中文描述同样建议简短精炼,控制在25个汉字以内

推荐组合方案:
① 使用 commitlint + husky 在提交时自动检查提交信息格式
② 在项目根目录配置 commitlint.config.js 定义允许的类型
③ 搭配 commitizen 提供交互式提交界面
④ CI/CD流水线中增加提交信息校验步骤
⑤ 在团队文档中明确提交规范,新人入职培训时进行说明
⑥ 使用本工具快速生成符合规范的提交信息,降低学习成本

scope是可选的,用于说明变更影响的范围。常见约定:
按模块:core, ui, api, auth, payment, notification
按层级:components, hooks, services, utils, styles
按平台:web, mobile, desktop, server
按功能域:dashboard, profile, settings, search
团队应统一scope命名规范,保持一致性。scope应该简短,通常1-2个英文单词。

在提交信息的footer区域使用关键词引用:
Closes #123 —— 合并后自动关闭Issue #123
Fixes #456 —— 修复并关闭Issue #456
Ref #789 —— 关联但不关闭Issue #789
See also: #321 —— 参考其他Issue
这些关键词被GitHub、GitLab、Gitee等平台识别,实现自动关联。

本工具的优势:
✅ 直观的类型卡片选择器,颜色+emoji双标识,一目了然
✅ 实时终端风格预览,所见即所得
✅ 自动字符计数,50字符最佳实践提醒
✅ 一键复制,自动保存历史记录
✅ 支持BREAKING CHANGE标记和issue关联
✅ 内置scope自动完成建议
✅ 无需安装任何依赖,打开浏览器即可使用
✅ 完全遵循Conventional Commits v1.0.0规范