前端技巧:git commit提交规范
在日常的开发工作中 , 通常使用git来管理项目代码 , 当对代码进行修改后 , 可以通过git commit命令来提交代码 。
git 规定提交时必须要写提交信息 , 作为改动说明 , 保存在 commit 历史中 , 方便回溯 。 规范的 log 不仅有助于他人 review, 还可以有效的输出 CHANGELOG , 甚至对于项目的研发质量都有很大的提升 。
但是在日常工作中 , 大多数同学对于 log 信息都是简单写写 , 没有很好的重视 , 这对于项目的管理和维护来说 , 无疑是不友好的 。 本篇文章主要是结合我自己的使用经验来和大家分享一下 git commit 的一些规范 , 让你的 log 不仅“好看”还“实用” 。
为什么要规范commit message一直在说要规范 commit message格式 , 那为什么要这样做呢?
让我们先来看一个不太规范的 commit 记录:
文章插图
看完以后什么感觉 , 这到底更新了什么啊 , 写得全是update , 这种 commit 信息对于想要从中获取有效信息的人来说无疑是一种致命的打击 。
那我们来看一个社区里面比较流行的Angular规范的 commit 记录:
文章插图
【前端技巧:git commit提交规范】看完是不是一目了然呢?
上图中这种规范的 commit 信息首先提供了更多的历史信息 , 方便快速浏览 。 其次 , 可以过滤某些 commit(比如文档改动) , 便于快速查找信息 。
既然说到了 Angular 团队的规范是目前社区比较流行的 commit 规范 , 那它具体是什么呢?下面让我们来具体深入了解下吧 。
Angular 团队的 commit 规范它的 message 格式如下:
(): // 空一行// 空一行
分别对应 Commit message 的三个部分:Header , Body 和 Footer 。
HeaderHeader 部分只有一行 , 包括三个字段:type(必需)、scope(可选)和subject(必需) 。
- type: 用于说明 commit 的类型 。 一般有以下几种:feat: 新增featurefix: 修复bugdocs: 仅仅修改了文档 , 如readme.mdstyle: 仅仅是对格式进行修改 , 如逗号、缩进、空格等 。 不改变代码逻辑 。 refactor: 代码重构 , 没有新增功能或修复bugperf: 优化相关 , 如提升性能、用户体验等 。 test: 测试用例 , 包括单元测试、集成测试 。 chore: 改变构建流程、或者增加依赖库、工具等 。 revert: 版本回滚
- scope: 用于说明 commit 影响的范围 , 比如: views, component, utils, test...
- subject: commit 目的的简短描述
# body: 72-character wrapped. This should answer:# * Why was this change necessary?# * How does it address the problem?# * Are there any side effects?# initial commit
Footer一些备注, 通常是 BREAKING CHANGE(当前代码与上一个版本不兼容) 或修复的 bug(关闭 Issue) 的链接 。简单介绍完上面的规范 , 我们下面来说一下commit.template , 也就是 git 提交信息模板 。
git 提交信息模板如果你的团队对提交信息有格式要求 , 可以在系统上创建一个文件 , 并配置 git 把它作为默认的模板 , 这样可以更加容易地使提交信息遵循格式 。
通过以下命令来配置提交信息模板:
git config commit.template[模板文件名]//这个命令只能设置当前分支的提交模板git config— —global commit.template[模板文件名]//这个命令能设置全局的提交模板 , 注意global前面是两杠
新建 .gitmessage.txt(模板文件) 内容可以如下:# headr: (): # - type: feat, fix, docs, style, refactor, test, chore# - scope: can be empty# - 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 issue.# - BREAKING CHANGE#
看完上面这些 , 你会不会像我一样感觉配置下来挺麻烦的 , 配置一个适合自己和团队使用的近乎完美的 commit 规范看来也不是一件容易的事情 。 不过社区也为我们提供了一些辅助工具来帮助进行提交 , 下面来简单介绍一下这些工具 。commitizencommitizen是一款可以交互式建立提交信息的工具 , 可以自动生成合格的commit message
- 安装npm install -g commitizen
- 在项目中使用commitizen init cz-conventional-changelog --save --save-exact
- commit在提交的时候就可以使用 git cz 就可以根据提示 , 生成自动化的 commit message
文章插图
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 查询|数据太多容易搞混?掌握这几个Excel小技巧,办公思路更清晰
- 设置|iPhone拍照小技巧:保留常用设置更高效
- 八大|黑五的购物网页该怎么设计?!电商UI设计八大技巧来了
- 格式化|利用好这3个隐藏技巧,Power BI 开发体验更丝滑
- 明细|微言普法——取证小技巧调取微信转账明细记录
- 效果|这个让你相见恨晚的技巧,能让PPT排版更加有设计感,推荐学习
- 一个免费、简单、只需要手机就可以完成的Kindle 传书小技巧!|Kindle 小技巧 | 简单
- 爱了!一个现代化的 Git CLI 客户端,一堆命令不用记了
- 媒介|智媒介:软文发布文案的核心写作技巧介绍