什么是 sr-commit-analyzer?
sr-commit-analyzer 是一个 npm 包,用于分析 git 提交记录中的 commit message,从而生成 changelog。它基于 Angular 团队维护的 conventional-changelog 规范,可以识别出符合规范的 commit message,进而生成特定格式的 changelog。
使用方法
- 安装 sr-commit-analyzer
npm install -g sr-commit-analyzer
- 在需要生成 changelog 的代码仓库中运行 sr-commit-analyzer
sr-commit-analyzer
它会遍历当前目录下的 git 提交记录,并根据 conventional-changelog 规范生成 changelog。
理解 sr-commit-analyzer
什么是 commit message?
git 提交代码时,一般都需要添加一个 commit message。这个 message 描述了本次提交的修改内容、原因等,是其他开发者理解这个提交的重要来源。一个好的 commit message 可以提高代码的可读性。
什么是 conventional-changelog 规范?
conventional-changelog 规范是 Angular 团队提出的一种 commit message 格式规范。它规定了 commit message 的结构和内容,便于生成 changelog。
举个例子,一个符合规范的 commit message 示例:
fix: 修复了登录页的样式问题 之前登录页的样式存在问题,现在已经修复。
这个 commit message 由以下内容组成:
- type: commit 的类型,一般包括 feat(新功能)、fix(修复 bug)、docs(文档)、style(样式修改)、refactor(重构代码)、test(增加或更新测试用例)等。详见官方规范。
- scope: commit 的作用域,表示这个 commit 影响到哪些部分,可以不填。
- subject: commit 主题,简要描述修改内容。
- body: commit 的具体内容,详细描述修改的原因、思路等。
- footer: commit 的相关链接、反馈等其他信息。
如何使用 sr-commit-analyzer 生成 changelog?
sr-commit-analyzer 会根据 conventional-changelog 规范遍历 git 提交记录,找到符合规范的 commit message。它将会把符合要求的 commit message 按照类型(type)分为不同的段落,然后生成 changelog。
sr-commit-analyzer 提供了一些参数以满足更多的需求,例如指定版本号、生成格式等等。更多的参数可以通过 --help
查看。
实战演示
在我的项目中执行 git log
,可以看到几条 commit message,其中一条符合 conventional-changelog 规范:
commit 273065c7711de98a750f1a1de71b205d3e9ceee3 (HEAD -> master, origin/master) Author: shirleyryu <shirley.ryu@gmail.com> Date: Sun Jul 4 15:13:48 2021 -0700 feat: 使用 bcrypt 对用户密码进行加密 之前用户密码只是明文储存在数据库中。现在通过 bcrypt 对密码加密,提高安全性。
在项目目录下执行 sr-commit-analyzer
命令,可以得到如下 changelog:
-- -------------------- ---- ------- -- ----- ------------ --- -------- - ---------- ------ --------------------------------------------------------------------------------------------------------- -- ----- ------------ --- -------- - ---------- ------ ---------------------------------------------------------------------------------------------------------
总结
sr-commit-analyzer 是一个方便易用的 npm 包,它可以帮助我们快速生成 changelog。要使用好它,我们需要了解 commit message 和 conventional-changelog 规范的相关知识,同时也要遵守规范来书写 commit message。这样才能保证 sr-commit-analyzer 生成出来的 changelog 具备可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057c4381e8991b448ebc82