优化 Git Commit Message
程序员文章站
2022-05-31 21:16:55
目前很多项目都是通过 Git 进行管理的,Git 每次提交代码的过程中 提交说明 commit message 是必须的。但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量。 作用与优点 提交说明最首要的目的是帮助 提交者 说明本次提交的目的,而规范的说明信息有几个好处。 1. 提供完整 ......
目前很多项目都是通过 git 进行管理的,git 每次提交代码的过程中 提交说明 commit message 是必须的。但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量。
作用与优点
提交说明最首要的目的是帮助 提交者 说明本次提交的目的,而规范的说明信息有几个好处。
- 提供完整的信息,帮忙快速定位问题
- 过滤某些 commit ,快速查找有用信息
- 直接从 commit 信息生成 change log
- 加快 code review 的过程
基本要求
- 第一行应该少于 50 个字。随后是一个空行
- 永远不在
git commit
上增加-m <msg>
或者--message=<msg>
参数,而需要单独写提交信息
好的提交说明要包含下面的内容:
- 为什么要提交这次修改?
- 怎么解决的问题?
- 可能影响哪些内容?
angular 规范 commitmsg 格式
angular 主要有三个格式,其中 head 是必须的,body 和 footer 是可选的。
# head: <type>(<scope>): <subject> # - type: feat, fix, docs, style, refactor, test, chore # - scope: can be empty (eg. if the change is a global or difficult to assign to a single component) # - subject: start with verb (such as 'change'), 50-character line # # body: 72-character wrapped. this should answer: # * why was this change necessary? # * how does it address the problem? # * are there any side effects? # # footer: # - include a link to the ticket, if any. # - breaking change #
header
其中 type 用来说明 commit 的类别,只允许使用下面的 7 个标识。
- feat 新功能
- fix 修补 bug
- docs 文档
- style 格式
- refactor 重构
- test 增加测试
- chore 构建过程、辅助工具
- perf 提高性能
如果 type 为 feat 和 fix ,则该 commit 信息将肯定出现在 change log 之中。
scope 用于说明 commit 影响的范围,比如影响哪一层、哪个包中的内容或者使用哪些方案的实例。
subject 是关于 commit 信息的简短描述,不超过 50 个字。
body
body 部分是针对本次 commit 的详细描述,可以多行,要表达清楚变动的动机、与之前行为的对比。
footer
用于不兼容变动和关闭 issue 。
使用 gitemoji 进行美化
虽然纯文字的提交说明已经非常明确了,但是却比较单调,而且在一些内容上感觉少了一些步骤,于是在现有的内容上进行少量的修改以更美观的清晰。
type 主要将原来的 chore 进行了拆分,增加了 ci 和 review 两个内容,用来补充项目开发过程中的流程。其它的还有一些内容,可以参照 。
-
feat 新功能
:sparkles:
✨ -
fix 修补 bug
:bug:
上一篇: 解决报表特殊布局的若干示例
下一篇: Java连载48-final关键字
推荐阅读
-
优化 Git Commit Message
-
关于IDEA git 只有Commit没有Push的问题
-
php session阻塞页面分析及优化教程+session_write_close session_commit使用讲解
-
Vue Git提交代码报错,Commit failed with error
-
fatal: could not open '.git/COMMIT_EDITMSG': Permission denied
-
fatal: could not open '.git/COMMIT_EDITMSG': Permission denied
-
Git 修改已提交 commit 的作者信息
-
Git修改commit的作者信息
-
批量修改git commit的作者信息
-
解决git误commit大文件导致不能push问题