🏆 文章目标:了解通用的Git commit规范,并在企业的团队内部进行实践。
🍀 如何规范你的Git commit(理论结合企业的实践)
✅ 创作者:Jay…
🎉 个人主页:Jay的个人主页
🍁 展望:若本篇讲解内容帮助到您,请帮忙点个赞吧,再点点您的小手关注下,您的支持是我继续写作的最大动力,谢谢。🙏
背景
commit message 目的是为了清晰明了的体现本次提交的内容,以及提交的目的。
但在日常开发中,大家的commit message千奇百怪,中英文混合使用,或者干脆就敷衍了事。这就导致后续代码维护成本特别大,追溯时,连开发者都不知道自己改了什么。
基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。
对比
如下是我根据部门内部的情况,再结合通用的提交规范进行微调后实践的情况。当然,没有最好,只有最合适,大家可以自行发挥!详细的内部管理文档,可以联系我免费提供!
我们看看规范commit message之前大家都是怎么写的:
- 修改了Bug
- 提交代码
- dev
- 合并代码
- Delete compiler.xml 以及调整部分注释
规范提交信息后:
如下的提交记录中的scope是按照产品的实际情况调整的,与通用规范存在一些区分:
- fix(菜单): #7201, 子级菜单展开的样式问题。
- fix(权限管理): #6312,调整权限管理中所有权限顺序按时间降序排序。
- perf(权限管理): 优化权限管理中的缓存数据,只获取配置数据的关键信息,而不是所有信息。
- feature(国际化): 增加国际化功能
- …
规范建设
规范梳理
初期我们在互联网上搜索了大量有关git commit规范的资料,但只有Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(IDEA就有插件支持这种写法)。最后综合阿里巴巴高德地图相关部门已有的规范总结出了一套git commit规范。
commit message格式:
<type>(<scope>): <subject>
type(必须)
用于说明git commit的类别,只允许使用下面的标识。
- feat:新功能(feature)。
- fix/to:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。
- fix:产生diff并自动修复此问题。适合于一次提交直接修复问题
- to:只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix
- docs:文档(documentation)。
- style:格式(不影响代码运行的变动)。
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)。
- perf:优化相关,比如提升性能、体验。
- test:增加测试。
- chore:构建过程或辅助工具的变动。
- revert:回滚到上一个版本。
- merge:代码合并。
- sync:同步主线或分支的Bug。
scope(可选)
这里是否必须,以及范围是什么内容,可以看实际公司的情况。
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
例如在Angular,可以是location,browser,compile,compile,rootScope, ngHref,ngClick,ngView等。如果你的修改影响了不止一个scope,你可以使用*代替。
subject(必须)
subject是commit目的的简短描述,不超过50个字符。
建议使用中文(感觉中国人用中文描述问题能更清楚一些)。
- 结尾不加句号或其他标点符号。
- 根据以上规范git commit message将是如下的格式:
fix(DAO):用户查询缺少username属性
feat(Controller):用户查询接口开发
以上就是我们梳理的git commit规范,那么我们这样规范git commit到底有哪些好处呢?
- 便于程序员对提交历史进行追溯,了解发生了什么情况。
- 一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。
- 格式化的commit message才可以用于自动化输出Change log。
插件
IDEA插件 - Git Commit Template
安装
1、打开 settings
下的 plugin
里搜索 git commit template
插件:
2、安装完后重启IDEA就可以使用了。
使用
安装后,可以在提交时看到如下图标:
选择需要的提交类型,可参考章节 规范建设。
填写完成后的样例:
效果:
VS Code - git-commit-plugin
安装
1、打开 preferences
下的 extensions
里搜索 git commit
插件:
2、点击 Install
后就可以使用了。
使用
1、快捷键找到:Command + Shift + P
打开,输入 show git commit template
2、选择提交的类型
3、按照内容进行填写后,点击 Complete
4、案例