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

CHANGELOG 生成器 - 基于约定式提交自动编写变更日志

64
0
0
0
什么是约定式提交(Conventional Commits)?
约定式提交是一种标准化的提交信息格式规范,其基本结构为 type[optional scope]: description。type 表示变更类型,如 feat 表示新功能、fix 表示 Bug 修复;scope 为可选的影响范围标记;description 为简洁的变更描述。这种格式使得提交记录易于被人和机器解析,能够自动生成 CHANGELOG、确定版本号等。该规范由 Angular 团队率先推广,现已成为开源社区广泛采用的标准,详见 conventionalcommits.org。
约定式提交的常用类型(type)有哪些?
常用类型包括:feat — 新功能(Feature);fix — 修复 Bug;docs — 文档更新;style — 代码格式调整(不影响逻辑);refactor — 代码重构(不修复 bug 也不添加功能);perf — 性能优化;test — 测试相关;chore — 构建过程或辅助工具的变动;ci — CI/CD 配置变更;build — 构建系统或外部依赖变更;revert — 回滚之前的提交。本工具支持解析所有这些类型,并将它们分类归入变更日志的对应章节中。
什么是 CHANGELOG?为什么项目需要它?
CHANGELOG(变更日志)是记录项目每个版本中所有显著变更的文件。它帮助用户和开发者了解每个版本的新功能、修复的 Bug 以及可能的破坏性变更。遵循 Keep a Changelog 规范,可以让变更日志更具可读性和一致性。一个好的 CHANGELOG 能极大提升开源项目的专业度和用户体验,也是项目维护良好与否的重要标志。通过本工具,您可以快速将零散的提交记录转化为结构化的变更日志文档。
如何标记 BREAKING CHANGE(破坏性变更)?
有两种方式标记破坏性变更:第一种是在类型后添加感叹号,例如 feat!: 重构用户认证 API;第二种是在提交信息的 footer 中包含 BREAKING CHANGE: 后跟变更说明。破坏性变更意味着新版本与之前版本不兼容,根据语义化版本规范,这应该触发主版本号的升级(如从 1.x 升级到 2.0)。本工具能够自动识别这两种标记方式,并将破坏性变更单独归类突出显示。
语义化版本(Semantic Versioning)是什么?
语义化版本(SemVer)的格式为 MAJOR.MINOR.PATCH:MAJOR 表示不兼容的 API 修改(BREAKING CHANGE);MINOR 表示向下兼容的功能新增(feat);PATCH 表示向下兼容的 Bug 修复(fix)。结合约定式提交,可以自动判断版本号应当如何递增。例如,如果提交记录中包含 feat 类型的提交,版本号的 MINOR 部分应当递增;如果包含 BREAKING CHANGE,则 MAJOR 部分应当递增。详见 semver.org。
如何使用此工具生成 CHANGELOG?
使用步骤如下:第一步,使用 git log --oneline 或类似命令获取提交记录;第二步,将提交记录粘贴到输入框中;第三步,填写版本号和发布日期;第四步,点击「生成 CHANGELOG」按钮;第五步,预览结果,点击「复制」或「下载 .md」保存变更日志。您也可以点击「加载示例」查看工具的演示效果。整个过程完全在浏览器本地完成,无需注册账号或上传数据。
CHANGELOG 和 Release Notes 有什么区别?
CHANGELOG 是面向开发者的详细技术变更记录,通常位于项目根目录的 CHANGELOG.md 文件中,记录所有类型的变更,包括内部重构、依赖更新等开发者关心的内容。Release Notes 则更面向最终用户,通常发布在 GitHub Releases 页面,突出新功能和重要修复,语言更加通俗易懂。两者可以互补使用:CHANGELOG 提供完整的技术变更清单,Release Notes 提供用户友好的版本亮点摘要。
有哪些自动化工具可以结合约定式提交使用?
常用工具包括:commitlint — 检查提交信息是否符合约定式提交规范,确保团队提交质量;husky — 在 Git hooks 中自动校验提交信息,阻止不规范的提交;standard-version — 自动升级版本号并生成 CHANGELOG,适合中小型项目;semantic-release — 全自动的版本发布和 CHANGELOG 生成,适合需要高度自动化的项目;commitizen — 交互式编写符合规范的提交信息,降低约定式提交的学习门槛。这些工具与本工具配合使用,可以构建完整的版本管理自动化流程。
工具是否支持 Scope(作用范围)标记?
是的,本工具完全支持约定式提交中的 Scope 标记。Scope 用于标识变更影响的具体模块或组件,格式为括号内的名称,例如 feat(auth): 添加 OAuth 登录中的 auth 表示认证模块。在生成的变更日志中,Scope 信息会被保留并展示,帮助读者快速定位变更所属的子系统。对于大型项目,Scope 标记尤为重要,因为它可以让变更日志更加精确和有组织。
生成的变更日志可以手动编辑吗?
可以。本工具生成的 CHANGELOG 内容支持一键复制到剪贴板或下载为 .md 文件,您可以在此基础上进行任意编辑和修改。常见的手动编辑包括:添加版本摘要说明、调整分类顺序、合并相关变更条目、添加链接引用等。工具的输出是一个良好的起点,您可以根据项目的具体需求进一步完善变更日志内容。