开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情
前言
规范的注释方便自己进行合并、撤消、回退。当代码有几十个分支,有成千上万条提交时,你随时可能面临着合并分支,回退代码,舍弃代码,对比代码,复制历史记录中有用的代码片段等等。如果仅靠千篇一律的注释,是很难从快速从注释中提取有用的信息,并且会遇到选择困难,不知道要合并哪个点,不知道要回退到哪里等。而传统的tag是用来记录大版本号,或发布时使用的。
目前,社区有多种 Commit message 的写法规范,但是更推荐下面的这种写法
当时我们团队在没有进行规范Git Commit注释之前是如此的杂乱无章
当遇到某一问题,或者定位某个问题节点的时候,锁定问题就变得复杂了,但是如果我们能够规范写出提交内容,那么我们只需全局搜索和时间锁定,可以很快锁定。 另外一个方面就是,团队开发代码,最忌讳的就是,表意不清;我们需要交换思想,那么如何做到,我们应该让彼此看得懂。那么规范显得尤为重要。
规范
提交的格式:type: message,注意中间使用 : 分割(后面带有一个空格),内容不超过 50 字。
type 用于指定提交的 commit 的类别,下面只允许以下几个动词原语。
add- 新增加的功能等描述。fix- 修复某个 bug 的描述。feat- 新增一个功能。update- 在原有的基础上更新代码的描述。change- 类似 update,唯一区别是 change 是重写了代码(带有颠覆性)。docs- 更新/新增文档时的描述。test- 增加/修改测试示例代码。release- 发布新的版本时使用。revert- 代码回退merge- 在解决代码冲突,合并分支时使用。chore- 构建过程或辅助工具的变动。build- 变更项目构建和外部依赖perf- 改善性能create- 初次创建项目时使用。remove- 移除文件、代码时使用。
type的作用是为了区分,并且能根据type做有效的commit logger 数据统计。
message 用于指定提交的描述文字,需要注意几个事项。
-
使用中文表述。
-
保证有明确的语义化说明。
-
保证表述内容简短。
-
以动词开头,比如:更新,增加,修复等。
正确的示例:
- fix: 修复登录邮箱格式验证错误的问题。
- update: 优化 Button 组件样式。
- test: 添加搜索模块的单元测完。
- release: 发布 v0.1.12 版本。
- remove: 移除多余的 console.log 代码
错误的示例:
- fix: 修复一个大 BUG。
- update: 更新代码。 // 表述不清楚。更新了什么代码,改变了什么功能?
- 添加搜索模块的单元测完。 // 没有写 type。
- add: 更新 API 文档用户信息接口说明。 // type 使用错误。
后面我们团队约定这样的一个规范,得到很好的成效。在维护代码和修改bug的时候;能够很快分析出问题在某个跌代出现;缩短了审查时间,提高了工作效率
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情