前言
在软件开发过程中,文档与版本管理尤为重要。随着 Git 的使用广泛,Git Changelog(变更日志)作为一种生成版本管理文档的工具也逐渐得到关注。
在众多集成了 Git 的工具中,我们推荐使用 npm 包 fast-git-changelog 生成 Changelog。
fast-git-changelog 简介
fast-git-changelog 是一款快速生成 Git Changelog 的 npm 包。相比其他工具具有以下特点:
- 快速: 使用 shell 命令行内置快捷键操作,比传统工具更快。
- 简单: 和 npm 指令类似,只需一行命令即可。
- 定制化: 支持自定义配置,满足个性化需求。
fast-git-changelog 安装
如果您已经安装了 npm 的话,使用以下指令安装即可:
npm i fast-git-changelog -g
fast-git-changelog 使用教程
使用前的注意点
在使用 fast-git-changelog 之前,请确保以下条件都已经满足:
- 工作区已经清空并提交(在字段内写好提交记录)。
- 确保分支历史信息已经完善。
- 工作区放置在一个单独的目录。
快速生成 Changelog
与其他 Git Changelog 工具不同,fast-git-changelog 使用命令行生成 Changelog。
输入以下命令:
fast-changelog -v vX.X.X
其中 -v
代表指定版本,X.X.X
为版本号。如果不指定 -v
,会生成从第一个提交到当前提交的所有记录。
fast-git-changelog 执行完成后,会生成一个 CHANGELOG.md 文件,文件包含版本号,发布日期以及所有变更信息。
定义 Changelog 格式
fast-git-changelog 默认配置生成的 Changelog 格式为:
-- -------------------- ---- ------- - --------- ---------------------- ---- --------- ---------------------------------------- ----- - --------------------------------------- -- ------------ --- ------- - --- ------- - --- ------- --- ----- - ----- ----- ----- --- ----- ----------- ---------- ----- -- ------- - ---------- --- ------- - --- -- ---- - --- -- ---- --- ----- - ----- ----- ----- --- ----- ----------- ---------- -----
可以使用 -c
指定自定义配置文件。
fast-changelog -c /path/to/configuration/file
Changelog 定制化
默认情况下,fast-git-changelog 生成符合 Keep a Changelog 规范的 Changelog。有时我们需要根据自己的需求定制化 Changelog。
下面是一些定义配置项的示例:
{ "title": "Release Notes", "repoName": "my-awesome-repo", "outputFile": "docs/release-notes.md", "excludeLabels": ["duplicate", "question"], "sectionOrder": ["Updated", "Added", "Removed", "Fixed"] }
其中:
title
:自定义标题。repoName
:在文件中的版本信息后添加的 repo 名称。outputFile
:指定 output 文件的位置。excludeLabels
:需要排除的标签列表。sectionOrder
:你可以指定要将哪些部分包含在 CHANGELOG 中,和它们的顺序。
示例:
fast-changelog -c /path/to/configuration/file
结语
fast-git-changelog 是一款实用的 npm 包,它可以快速生成 Git Changelog,减轻了开发者的压力。希望该教程可以帮助您使用该工具,并打造出个性化的 Changelog。
参考文献
GitHub:「mozilla/mm-price-monitor-ui」https://github.com/mozilla/mm-price-monitor-ui
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005539181e8991b448d0c2b