背景
Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,中英文混合使用、fix bug等各种笼统的message司空见怪,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。
格式:<type>(<scope>): <subject>
示例:feat: 新增荣誉证书界面 subject 文字前面记得给一个空格 结尾不加任何符合
type类型(必选) | type对应的解释 |
---|---|
feat | 新功能(feature) |
fix/to | 新修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG |
fix | 产生diff并自动修复此问题。适合于一次提交直接修复问题 |
to | 只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix |
docs | 文档(documentation) |
style | 格式(不影响代码运行的变动) |
refactor | 重构(即不是新增功能,也不是修改bug的代码变动). |
perf | 优化相关,比如提升性能、体验 |
test | 增加测试 |
revert | 回滚到上一个版本 |
merge | 代码合并 |
sync | 同步主线或分支的Bug |
scope(可选) | scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同 |
subject(必选) | subject是commit目的的简短描述,不超过50个字符 |
优势
便于程序员对提交历史进行追溯, 了解发生了什么情况
一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。
- 格式化的 commit message才 可以用于自动化输出Change log。