commit
最佳实践
- 初次提交:🎉Initialize Repo
- 修复bug: fix
- 🐛:bug:
- 增加新功能:feat:
- ✨引入新功能 :sparkles:
- 🌐国际化::globe_with_meridians:
- 重构:refactor:
- 🔨重大重构 :hammer:
- 视觉上的改动:cosm:
- 代码风格的改动(空格、缩进等):style:
- 🎨 :art:
- 文档/代码注释:docs:
- 📝:memo:撰写文档
commit规范
https://open.leancloud.cn/git-commit-message/
类型:简单描述-详情(可选)-注解(可选)
feat(auth): increase length of new API key-the length is increased from 24 to 32 for new API keys
-close #12
类型 | 说明 |
---|---|
feat |
feature - 所有实现新功能、新行为的 commit 都属这个类型 |
fix |
修正缺陷的 commit |
chore |
日常维护性的改动,例如 linter 的配置等 改变构建流程,如增加依赖库、工具 |
test |
与测试有关的改动,单元测试、集成测试 |
refactor |
不改变行为的对代码结构的改进, 代码重构,没有新增功能 or 修复bug |
style |
对代码风格的修正(仅限缩进、空行一类的简单改动,对结构有影响的用 refactor ) |
cosm |
cosmetic - 不改变行为的对界面的纯视觉上的改动 |
docs |
对文档的改进,包括对外文档和代码注释 |
build |
和构建流程、持续集成等有关的改动 |
revert | 回滚到某个版本 |
perf | 优化相关:提升性能、体验 |
commit-emoji
https://github.com/liuchengxu/git-commit-emoji-cn
在命令行显示emoji需要安装emojify
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: |
工作进行中 |
👷 (工人) | :construction_worker: |
添加 CI 构建系统 |
💚 (绿心) | :green_heart: |
修复 CI 构建问题 |
🔒 (锁) | :lock: |
修复安全问题 |
🐳 (鲸鱼) | :whale: |
Docker 相关工作 |
🍎 (苹果) | :apple: |
修复 macOS 下的问题 |
🐧 (企鹅) | :penguin: |
修复 Linux 下的问题 |
🏁 (旗帜) | :checked_flag: |
修复 Windows 下的问题 |
分支及版本发布规范
- 基本原则:master为保护分支,不直接在master上进行代码修改和提交。
- 开发日常需求或者项目时,从master分支上checkout一个feature分支进行开发或者bugfix分支进行bug修复,功能测试完毕并且项目发布上线后,
将feature分支合并到主干master,并且打Tag发布,最后删除开发分支
。分支命名规范:- 分支版本命名规则:分支类型 分支发布时间 分支功能。比如:feat_20170401_fairy_flower
- 分支类型包括:feat、 fix、refactor三种类型,即新功能开发、bug修复和代码重构
- 时间使用年月日进行命名,不足2位补0
- 分支功能命名使用snake case命名法,即下划线命名。
- Tag包括3位版本,前缀使用v。比如v1.2.31。Tag命名规范:
- 新功能开发使用第2位版本号,bug修复使用第3位版本号
- 核心基础库或者Node中间价可以在大版本发布请使用灰度版本号,在版本后面加上后缀,用中划线分隔。alpha或者belta后面加上次数,即第几次alpha:
- v2.0.0-alpha.1
- v2.0.0-belta.1
- 版本正式发布前需要生成changelog文档,然后再发布上线。
1、切换到需要打标签的分支上,创建tag
$ git checkout master
$ git tag -a v1.0.0 -m "基本雏形"
# 查看标签
$ git tag
# v0.0.1
# 查看标签详细信息
git show v1.0.0
# 删除标签
git tag -d v1.0.0
2、发布标签
$ git push origin v1.0.0
Counting objects: 1, done.
Writing objects: 100% (1/1), 163 bytes | 163.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)