前置知识
Git
每次提交代码,都要写 Commit message
(提交说明),否则就不允许提交。
$ git commit -m "hello world"
上面代码的 -m
参数,就是用来指定 commit mesage
的。如果一行不够,可以只执行git commit
,就会跳出文本编辑器,让你写多行。
$ git commit
常见的 Git Commit 规范
Angular 团队的规范
目前规范使用较多的是 Angular 团队的规范, 继而衍生了 Conventional Commits specification. 很多工具也是基于此规范, 它的 message 格式如下:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
我们通过 git commit
命令带出的 vim
界面填写的最终结果应该类似如上这个结构, 大致分为三个部分(使用空行分割):
- 标题行: 必填, 描述主要修改类型和内容。
- 主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等。
- 页脚注释: 放
Breaking Changes
或Closed Issues
。
分别由如下部分构成:
- type: commit 的类型
- feat: 新特性
- fix: 修改问题
- refactor: 代码重构
- docs: 文档修改
- style: 代码格式修改, 注意不是 css 修改
- test: 测试用例修改
- chore: 其他修改, 比如构建流程, 依赖管理.
- scope: commit 影响的范围, 比如: route, component, utils, build…
- subject: commit 的概述, 建议符合 50/72 formatting
- body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
- footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接.
这样一个符合规范的 commit message,就好像是一份邮件。
**type**
类型:
feat
增加新功能fix
修复问题/BUGstyle
代码风格相关无影响运行结果的perf
优化/性能提升refactor
重构revert
撤销修改test
测试相关docs
文档/注释chore
依赖更新/脚手架配置修改等workflow
工作流改进ci
持续集成types
类型定义文件更改wip
开发中
gitmoji |表情符号指导你的提交信息
emoji | emoji 代码 | commit 说明 |
---|---|---|
🎉 (庆祝) | :tada: |
初次提交 |
✨(全新) | :sparkles: |
引入新功能 |
🔖 (书签) | :bookmark: |
发行/版本标签 |
🐛 (bug) | :bug: |
修复 bug |
🚑 (急救车) | :ambulance: |
重要补丁 |
🌐 (地球) | :globe_with_meridians: |
国际化与本地化 |
💄 (口红) | :lipstick: |
更新 UI 和样式文件 |
🎬 (场记板) | :clapper: |
更新演示/示例 |
🚨 (警车灯) | :rotating_light: |
移除 linter 警告 |
🔧 (扳手) | :wrench: |
修改配置文件 |
➕ (加号) | :heavy_plus_sign: |
增加一个依赖 |
➖ (减号) | :heavy_minus_sign: |
减少一个依赖 |
⬆️ (上升箭头) | :arrow_up: |
升级依赖 |
⬇️ (下降箭头) | :arrow_down: |
降级依赖 |
⚡️ (闪电) 🐎 (赛马) |
:zap: :racehorse: |
提升性能 |
📈 (上升趋势图) | :chart_with_upwards_trend: |
添加分析或跟踪代码 |
🚀 (火箭) | :rocket: |
部署功能 |
✅ (白色复选框) | :white_check_mark: |
增加测试 |
📝 (备忘录) | :memo: |
撰写文档 |
🔨 (锤子) | :hammer: |
重大重构 |
🎨 (调色板) | :art: |
改进代码结构/代码格式 |
🔥 (火焰) | :fire: |
移除代码或文件 |
✏️ (铅笔) | :pencil2: |
修复 typo |
🚧 (施工) | :construction: |
工作进行中 |
🗑 (垃圾桶) | :wastebasket: |
废弃或删除 |
♿️ (轮椅) | :wheelchair: |
可访问性 |
👷 (工人) | :construction_worker: |
添加 CI 构建系统 |
💚 (绿心) | :green_heart: |
修复 CI 构建问题 |
🔒 (锁) | :lock: |
修复安全问题 |
🐳 (鲸鱼) | :whale: |
Docker 相关工作 |
🍎 (苹果) | :apple: |
修复 macOS 下的问题 |
🐧 (企鹅) | :penguin: |
修复 Linux 下的问题 |
🏁 (旗帜) | :checkered_flag: |
修复 Windows 下的问题 |
如何在命令行中显示 emoji
默认情况下,在命令行中并不会显示出 emoji,仅显示 emoji 代码。不过可以使用 emojify 使得在命令行也可显示 emoji,它是一个 shell 脚本,安装与使用都很简单,在 这里 查看如何安装与使用。
Idea 插件 gitmoji-plugin
安装
直接从IDE插件管理器安装 (File > Settings > Plugins > Browser repositories > gitmoji)
Or
go jetbrains plugin download.
参考
【1】Commit message 和 Change log 编写指南 | 阮一峰
【2】优雅的提交你的 Git Commit Message | 阿里南京技术专刊