引言
在日常的开发中,我们通常会使用 git
来管理代码,当我们对代码就行改动之后,可以通过 git commit
来提交对代码的修改。
git 规定提交时需要填写提交信息,用来作为改动备注保存在 commit
历史中,方便溯源。那么,规范的提交信息不仅有助于他人
review
,还可以输出有效的CHANGE
LOG,甚至对于项目的研发质量都有很大的提升。
但是很遗憾,在日常的工作中,大多数同学的提交信息都是粗略写写,没有很好的重视,这对于项目的管理维护来说是非常不友好的。那么,接下来我就来分享下关于 git commit / pull request 的一些规范,让提交信息好看还实用。
为什么要规范 Commit?
对于企业和开源软件来说,规范 commit 的好处体现的多个维度,比如说:
- 便于项目的管理和维护
- 统一组织规范,提升组织的专业度,增强开发者对软件的信心
对于个人开发来说:
- 便于开发者对提交历史进行溯源,了解发生的具体情况
- 便于进行 code review,提高效率
- 规格化的 commit 信息可以用于自动化输出 CHANGE LOG,方便软件的迭代管理
- 对于 Type 和 Scope 的约束,可以使得开发者会细心规划 Commit 的内容和范围,做到 One Commit, One Thing
规范哪些内容?
规范的提交信息:
<type>[optional scope]: <description> |
如何限制?
限制 PR 的 Title,遵循 Conventional Commits 的规范
对于GitHub来说,可以使用 GitHub Action 这个神级功能来进行限制,配置内容如下:
name: Check PR Title |
关于 GitHub Action 的相关知识,看这里
限制 PR 仅允许 Squash 的方式进行合并
限制 Squash 的方式进行合并,并且以 PR 的标题作为 Commit 信息,达到同时限制分支的 commit 和 PR 的效果。
PS:限制合并代码方式后,可能会损失一些提交记录,但是这样也是在提醒开发同学们避免提交大型 PR,通过一些小型 PR 来完成代码提交,同时也降低了 code reviewer 的负担。
实用工具辅助
- IDEA插件:Git Commit Template
- 配置 Git GPG 签名: Telling Git about your signing key 、为IDEA/Git配置GPG密钥,点亮GitHub Verified Commit标识
生成Change Log的方式参考:Commit message 和 Change log 编写指南