Git Commit 规范以及emoji 使用指南
git commit -m "🎉 Initialize Repo"
Git版本规范
分支
master
分支为主分支(保护分支),不能直接在master上进行修改代码和提交develop
分支为测试分支,所以开发完成需要提交测试的功能合并到该分支feature
分支为开发分支,大家根据不同需求创建独立的功能分支,开发完成后合并到develop分支fix
分支为bug修复分支,需要根据实际情况对已发布的版本进行漏洞修复
Tag
采用三段式,v版本.里程碑.序号,如v1.2.1
- 架构升级或架构重大调整,修改第2位
- 新功能上线或者模块大的调整,修改第2位
- bug修复上线,修改第3位
changelog
- 版本正式发布后,需要生产changelog文档,便于后续问题追溯
commit message规范
Commit message一般包括三部分:
Header
、Body
和Footer
Header
-
type(scope):subject
-
type
:用于说明commit的类别,规定为如下几种- feat:新增功能;
- fix:修复bug;
- docs:修改文档;
- refactor:代码重构,未新增任何功能和修复任何bug;
- build:改变构建流程,新增依赖库、工具等(例如webpack修改);
- style:仅仅修改了空格、缩进等,不改变代码逻辑;
- perf:改善性能和体现的修改;
- chore:非src和test的修改;
- test:测试用例的修改;
- ci:自动化流程配置修改;
- revert:回滚到上一个版本;
-
scope
:【可选】用于说明commit的影响范围 -
subject
:commit的简要说明,尽量简短
Body
- 对本次commit的详细描述,可分多行
尾部(Footer)
- 不兼容变动:需要描述相关信息
- 关闭指定Issue:输入Issue信息
git commit中使用emoji
-
emoji规范格式
git commit
时,提交信息遵循以下格式:
:emoji1: :emoji2: 不超过 50 个字的摘要,首字母大写,使用祈使语气,句末不要加句号
提交信息主体
引用相关 issue 或 PR 编号 <#110>
初次提交示例:
git commit -m ":tada: Initialize Repo"
-
emoji 指南
emoji | emoji 代码 | commit 说明 |
---|---|---|
🎉 (庆祝) | `:tada:` | 初次提交 |
✨ (火花) | `:sparkles:` | 引入新功能 |
🔖 (书签) | `:bookmark:` | 发行/版本标签 |
🐛 (bug) | `:bug:` | 修复 bug |
🚑 (急救车) | `:ambulance:` | 重要补丁 |
🌐 (地球) | `:globe_with_meridians:` | 国际化与本地化 |
💄 (口红) | `:lipstick:` | 更新 UI 和样式文件 |
🚨 (警车灯) | `: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:` | 工作进行中 |
👷 (工人) | `:construction_worker:` | 添加 CI 构建系统 |
💚 (绿心) | `:green_heart:` | 修复 CI 构建问题 |
🔒 (锁) | `:lock:` | 修复安全问题 |
🐳 (鲸鱼) | `:whale:` | Docker 相关工作 |
🍎 (苹果) | `:apple:` | 修复 macOS 下的问题 |
🐧 (企鹅) | `:penguin:` | 修复 Linux 下的问题 |
🏁 (旗帜) | `:checked_flag:` | 修复 Windows 下的问题 |
Git Commit 优点
- 统一团队Git Commit标准,便于后续代码review、版本发布、自动化生成change log
- 可以提供更多更有效的历史信息,方便快速预览以及配合cherry-pick快速合并代码
- 团队其他成员进行类
git blame
时可以快速明白代码用意