Git Commit 规范以及emoji 使用指南
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 下的问题 |
案例
使用commit message规范
使用commit emoji规范
Git Commit 优点
- 统一团队Git Commit标准,便于后续代码review、版本发布、自动化生成change log
- 可以提供更多更有效的历史信息,方便快速预览以及配合cherry-pick快速合并代码
- 团队其他成员进行类
git blame
时可以快速明白代码用意