用工具思路来规范化 git commit message

辩才天
• 阅读 2458

为什么要规范 Git Commit Message

  • 发生问题快速识别问题代码
  • commit和代码建立联系,和相关prd、bug予以关联。

如何写出规范化的 Git Commit Message

选用当前业界内应用比较广泛的 Angular Git Commit Guidelines

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  1. type:commit的类型:feat fix refactor docs style test chore
  2. scope:commit 影响的范围, 比如: route, component, utils, build...
  3. subject:commit 的概述

    • 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
    • 第一个字母小写(可以使用中文)
    • 结尾没有符号
  4. body:commit 具体修改内容, 可以分为多行
  5. footer:一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接

项目使用参考步骤

1.Commitizen: 替代你的 git commit

commitizen/cz-cli, 我们需要借助它提供的 git cz 命令替代我们的 git commit 命令, 帮助我们生成符合规范的 commit message.

除此之外, 我们还需要为 commitizen 指定一个 Adapter 比如: cz-conventional-changelog (一个符合 Angular团队规范的 preset). 使得 commitizen 按照我们指定的规范帮助我们生成 commit message.

yarn add --dev commitizen cz-conventional-changelog

package.json中配置:

"script": {
    ...,
    "commit": "git-cz",
},
 "config": {
    "commitizen": {
      "path": "node_modules/cz-conventional-changelog"
    }
  }

如果全局安装过 commitizen, 那么在对应的项目中执行 git cz or npm run commit 都可以

2.Commitlint: 校验你的 message

commitlint: 可以帮助我们 lint commit messages,校验的配置推荐 [@commitlint/config-conventional]() (符合 Angular团队规范).
话不多说直接按照:

yarn add --dev @commitlint/config-conventional @commitlint/cli

同时需要在项目目录下创建配置文件 .commitlintrc.js, 写入:

module.exports = {
  extends: [
    '@commitlint/config-conventional'
  ],
  rules: {
  }
};

3.结合 Husky

yarn add --dev husky

package.json 中添加:

"husky": {
    "hooks": {
      ...,
      "commit-msg": "commitlint -e $GIT_PARAMS"
    }
  },

参考资料

优雅的提交你的 Git Commit Message

Commit message 和 Change log 编写指南

点赞
收藏
评论区
推荐文章
前端尾随者 前端尾随者
4年前
GitLab配置ssh key
一、背景当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成sshkey,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户
Jacquelyn38 Jacquelyn38
4年前
Vue路由的模块自动化与统一加载
首先呢,我们来看看一般项目路由是怎么划分的。为什么这么划分呢?如果大项目业务非常多,单纯的单页面很难维护,我们只有这样规范化,才能高效率。模块自动化与统一加载的好处:规范化命名(模块名.业务名.vue)不用每次写页面都要去总路由引入组件接下来,我们实战一波。一、建立项目文件目录以及文件夹根据上面的要求建立,依次在src文件夹下的c
Stella981 Stella981
4年前
Git生成SSH公钥
一、设置Git全局用户名和邮箱配置gitconfigglobaluser.name"huhansan"gitconfigglobaluser.email"huhansan@qq.com"如果有对设置Git信息有疑惑的可以看这边篇文章:为什么要设置Git的邮箱和用户名(https://my.oschin
Stella981 Stella981
4年前
Git 对象存储结构分析
1\.前言git对象有四种:blob(数据块),tree(目录树),commit(提交),tag(标签)。本文通过一个示例,以blob为例来讨论对象的存储结构。示例采用的git版本为2.17。2\.实践讨论2.1.生成Blob对象文件首先创建一
Stella981 Stella981
4年前
Git 实战教程
1.Git配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用gitconfig命令进行配置:​$gitconfigglobaluser.name"ilimhumar"$gitconfigglobal
Wesley13 Wesley13
4年前
Git中代码冲突的解决方式
使用Git管理代码,在进行代码提交的时候,如果出现了冲突该怎么办呢,下面就两种常见的冲突给出了解决方法,希望对大家有所帮助。冲突1:当你commit以后,在执行gitpullrebase的时候出现冲突,请按如下步骤解决:1 找到冲突文件,解决冲突2 执行gitaddxxx(xxx为冲突文件全路径)3 执行git
Stella981 Stella981
4年前
Git commit message和工作流规范
作者:程柳锋目的统一团队Gitcommit日志标准,便于后续代码review,版本发布以及日志自动化生成等等。统一团队的Git工作流,包括分支使用、tag规范、issue等Gitcommit日志参考案例angular(https://www.oschina.net/action/GoToL
Stella981 Stella981
4年前
Git提交规范流程和解决冲突实际使用
前言:GIT对于我们程序员来说是吃饭的工具,本篇主要是针对提交和分支以及对于大多数程序员闻风丧胆的冲突一些个人见解,如果有啥不对的或者你们公司git提交流程欢迎下方评论。在讨论规范之前,我们需要定最基本的要求1.团队内保持良好的代码格式便于易读和维护,最主要减少不必要的代码冲突(建议统一使用开发工具(idea)的代码格式化)。2.提交任何代码必须
Git 代码分支管理 | 京东云技术团队
Git代码分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的管理代码分支。
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
辩才天
辩才天
Lv1
大漠孤烟直,长河落日圆。
文章
4
粉丝
0
获赞
0