一. 什么是 Gitmoji ?
Gitmoji 是一套使用 Emoji 规范化提交信息的工作流指导,表情符号不仅美观而且可以从表情中标识提交内容的意图,也方便后期的自动化生成更新文档。
一个典型的 Gitmoji 提交分为三个部分:
- Intention:意图,为 Gitmoji 提供的表情列表中的一个。
- Scope:范围,可选,提供变更的上下文范围。
- Message: 消息,具体的变更内容简述。
比方说:<intention> [scope?][:?] <message>
🎨 list: add demo
二. 如何使用?
Gitmoji 提供多种使用方式,如命令行,Webstorm 插件,VsCode 插件等。
1. 命令行-client模式
安装:
npm i -g gitmoji-cli
唤起 gitmoji 提交:
gitmoji -c
命令行中会交互式的让你选择你要使用的 Gitmoji,以及添加其他信息。
➜ techui-studio git:(test/sortable-list) gitmoji -c
? Choose a gitmoji: (Use arrow keys or type to search)
❯ 🎨 - Improve structure / format of the code.
⚡️ - Improve performance.
🔥 - Remove code or files.
🐛 - Fix a bug.
🚑️ - Critical hotfix.
✨ - Introduce new features.
📝 - Add or update documentation.
(Move up and down to reveal more choices)
2. 命令行-hook 模式
初始化后,普通的git commit 提交后会自动调用 gitmoji 的交互式提交方式。
$ gitmoji -i // 执行初始化操作,添加 hook 到 git commit
$ git add .
$ git commit
注意这种方式和 client 模式不可同时使用。
3. 编辑器插件
除了命令行方式之外,你还可以选择编辑器插件,比如 VSCode 或者 WebStorm 插件。这里 VSCode 插件会在源代码管理 tab 下 添加 emoji 的输入快捷键。
4. 平台不显示emoji?
有时候我们在本地使用 gitmoji 生成了规范格式的提交,但到平台上发现是这样的 :recycle:
,默认提交的是 emoji 码。
但我们希望在系统中显示的是这样的:
为此你需要通过 gitmoji -g
来指定在提交中用哪种类型的 emoji 形式:
三. 自动化 ChangeLog
主要使用 conventional-changelog-cli,需要注意的是 gitmoji 本身的表情码和 conventionnal-changelog-cli
不兼容,所以如果是命令行方式的提交,建议切换为 emoji 形式,然后自己在提交信息中添加类型码。
husky > npm run -s precommit (node v16.13.0)
🐟🐟🐟 Using @alipay/bigfish@3.9.32 and umi@3.5.23... 🐟🐟🐟
✔ Preparing...
✔ Running tasks...
✔ Applying modifications...
✔ Cleaning up...
? Choose a gitmoji: ✨ - feat: introduce new features | 添加新功能
? Enter the commit title [34/48]: feat: 给字段选择器添加 CollapseTitle 可收起能力
? Enter the commit message: # 说明将会终止提交。
[feat/tree-select 7384139] ✨ feat: 给字段选择器添加 CollapseTitle 可收起能力
4 files changed, 23 insertions(+), 13 deletions(-)
安装依赖:
"conventional-changelog-cli": "~2.1.1",
"conventional-changelog-gitmoji-config": "^1.4.3",
添加生成 changeLog 的 script 。
"changelog": "conventional-changelog -p gitmoji-config -i CHANGELOG.md -s",
注意 conventional-changelog-cli
基于 tag 生成比对。所以在运行脚本前先 git tag
一次。