源起
多人协作开发过程中最抠脑壳的就是读懂其它小伙伴的commit信息,由于我们开发过程中的提交信息不规范,导致我们很多时候回过头来看commit信息时,发现自己都不能一眼看出这次提交主要做了哪方面的修改,这对于他人阅读以及代码合并时带来了很大的困扰,更不用说拿commit信息自动生成release node直接发布了,基于这个原因,根据 约定式提交 的规范,我们做了一下commit信息的本地校验,并建议大家按照最小、单一、完整的原则下提交一个commit信息!
限制
我们会对你的commit信息中的第一行做格式校验,满足要求的格式应该类似于:
aa(bb):空格cc ==> feat(crm): just for text
如果格式不满足会有如下提示:
- 若你的commit信息为:fea(crm):aaa
如果类型不满足会有如下提示:
- 若你的commit信息为:fea(crm): aaa
如果格式和类型都满足,则可以正常通过校验:
- 若你的commit信息为:feat(crm): add test feat
详细的模版信息如下:
# <类型>(领域): <描述>
#空行
# <body>正文,详细描述,可以没有
#空行
# <footer>备注,通常是 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使用教程
- 将 https://github.com/yangtaodev/gitConfig 项目里面的config文件夹复制到项目根目录,即app同级目录
- 在项目根目录执行:source config/init.sh
- 完成了,是不是很简单!接下来你就可以做代码修改并执行git commit 命令了
如果你喜欢使用Android studio自带的工具提交代码按照以下步骤:
-
先安装以下两个plugins
image.png -
提交代码编写commit信息
image.png
image.png
image.png -
插入emoji图片
image.png
image.png
网友评论