git commit 规范

源起

多人协作开发过程中最抠脑壳的就是读懂其它小伙伴的commit信息,由于我们开发过程中的提交信息不规范,导致我们很多时候回过头来看commit信息时,发现自己都不能一眼看出这次提交主要做了哪方面的修改,这对于他人阅读以及代码合并时带来了很大的困扰,更不用说拿commit信息自动生成release node直接发布了,基于这个原因,根据 约定式提交 的规范,我们做了一下commit信息的本地校验,并建议大家按照最小、单一、完整的原则下提交一个commit信息!

限制

我们会对你的commit信息中的第一行做格式校验,满足要求的格式应该类似于:
aa(bb):空格cc ==> feat(crm): just for text

如果格式不满足会有如下提示:

  • 若你的commit信息为:fea(crm):aaa
image.png

如果类型不满足会有如下提示:

  • 若你的commit信息为:fea(crm): aaa
image.png

如果格式和类型都满足,则可以正常通过校验:

  • 若你的commit信息为:feat(crm): add test feat
image.png

详细的模版信息如下:

# <类型>(领域): <描述>
#空行
# 正文,详细描述,可以没有
#空行
# 
备注,通常是 BREAKING CHANGE 或修复的 bug 的链接,可以没有 # 类型字段包含: # feat:新功能(feature)-- emoji: ":sparkles:"有惊喜,例子 :sparkles:feat(crm): just text => ✨feat(crm): just text// # fix:修复bug -- emoji: ":bug:" # perf:性能优化(不影响现有代码逻辑的前提下提升性能) -- emoji: ":zap:" ⚡️ # refactor:重构(即不是新增功能,也不是修改bug的代码变动)-- emoji: ":recycle:" ♻️ # revert:恢复上一次提交 -- emoji: ":rewind:" ⏪️ # merge:分支代码合并 -- emoji: ":twisted_rightwards_arrows:" # docs:文档(documentation)-- emoji: ":memo:" # style:格式化 ESLint调整等(不影响代码运行的变动) -- emoji: ":art:" # test:增加测试代码,单元测试 -- emoji: ":test_tube:" # build:更改构建系统相关以及外部依赖 -- emoji: ":green_heart:" # gitignore:修改ignore -- emoji: ":see_no_evil:" # config:修改配置相关文件 -- emoji: ":wrench:" # scripts:修改脚本相关文件 -- emoji: ":hammer:" # ci:改变CI相关的配置文件或者脚本 -- emoji: ":green_heart:" # 领域范围: # 用于说明 commit 影响的范围,可以是某个领域或者某个具体范围,比如修改的登录页、账户中心页等 # 或者 crm、init、trade、ordercenter、payment、net、print、order、log、dns、 # 描述: # commit目的的简短描述,不超过50个英文字符 # # body 部分是对本次 commit 的详细描述,可以分成多行 # footer 用来关闭 Issue或以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法 #

如果你喜欢emoji装饰一下你可以如下操作:

feat(crm): just text ==> :sparkles:feat(crm): just text

在gitlab或者github上就有如下的效果:

image.png

使用教程

  1. 将 https://github.com/yangtaodev/gitConfig 项目里面的config文件夹复制到项目根目录,即app同级目录
  2. 在项目根目录执行:source config/init.sh
  3. 完成了,是不是很简单!接下来你就可以做代码修改并执行git commit 命令了
image.png

如果你喜欢使用Android studio自带的工具提交代码按照以下步骤:

  • 先安装以下两个plugins


    image.png
  • 提交代码编写commit信息


    image.png

    image.png

    image.png
  • 插入emoji图片


    image.png

    image.png

你可能感兴趣的:(git commit 规范)