commit

最佳实践

  • 初次提交:🎉Initialize Repo
  • 修复bug: fix
    • 🐛:bug:
  • 增加新功能:feat:
    • ✨引入新功能 :sparkles:
    • 🌐国际化::globe_with_meridians:
  • 重构:refactor:
    • 🔨重大重构 :hammer:
  • 视觉上的改动:cosm:
  • 代码风格的改动(空格、缩进等):style:
    • 🎨 :art:
  • 文档/代码注释:docs:
    • 📝:memo:撰写文档

🔥:fire: 移除代码/文件

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

  1. $ git checkout master
  2. $ git tag -a v1.0.0 -m "基本雏形"
  3. # 查看标签
  4. $ git tag
  5. # v0.0.1
  6. # 查看标签详细信息
  7. git show v1.0.0
  8. # 删除标签
  9. git tag -d v1.0.0

2、发布标签

  1. $ git push origin v1.0.0
  2. Counting objects: 1, done.
  3. Writing objects: 100% (1/1), 163 bytes | 163.00 KiB/s, done.
  4. Total 1 (delta 0), reused 0 (delta 0)