规范git commit的提交记录

更新日期: 2020-04-07 阅读: 2.3k 标签: git

随着项目体积的增加,参与到项目中的同学越来越多,每个人都有自己的打 git log 的习惯:

  • 格式 1: add: 添加...
  • 格式 2: [add]: 添加...
  • 格式 3: Add 添加...

为了形成统一的规范,达成共识,从而降低协作开发成本,需要对 git commit 记录进行规范。


规范 git commit 记录

规范 git commit 记录,需要做两件事情:

  • 通过交互式命令行,自动生成符合指定规范的 commit 记录
  • 提交记录后,在 git hooks 中进行 commit 记录格式检查
问:既然已经交互式生成了规范记录,为什么需要在 hooks 进行检查?

交互式生成 commit 记录,需要用户调用自定义的 npm scripts,例如npm run commit。但还是可以直接调用原生 git 命令 git commit 来提交记录。而检查是在正式提交前进行的,因此不符合要求的记录不会生效,需要重新 commit。


调研:交互式 commit log 规范方案

前期调研结果,关于 commit 提示有两种做法:

  1. 直接使用 commitizen 中常用的 adapter
  2. 根据团队的需要,自定义 adapter

方法 1 的优缺点:

优点 1: 直接安装对应的 adapter 即可

优点 2: 无开发成本

缺点 1: 无法定制,不一定满足团队需要

方法 2 的优缺点:

优点 1: 可定制,满足开发需求

优点 2: 单独成库,发布 tnpm,作为技术建设

缺点 1: 需要单独一个仓库(但开发成本不高)


代码实现

在实际工作中,发现方法 1 中的常用规范,足够覆盖团队日常开发场景。所以,选择了方法 1.

step1: 安装 npm 包

npm i --save-dev commitizen cz-conventional-changelog @commitlint/cli @commitlint/config-conventional husky

添加 package.json 的配置:

"scripts": {
    "commit": "git-cz"
},
"husky": {
    "hooks": {
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
},
"config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
}

在项目根目录下创建commitlint.config.js:

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

使用方法:不再使用git commit -m ...,而是调用npm run commit。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/8850

相关推荐

git从远程仓库克隆dev分支到本地的实现

这篇文章主要介绍git从远程仓库拉取dev分支到本地的实现【gitLab】:初始化一个本地仓库、与远程仓库建立连接 、查看本地是否具有dev分支、在本地创建分支dev并切换到该分支 、dev分支上的内容都拉取到本地

解决git/github下载速度缓慢的问题总汇

官网下载Git时,速度几乎是超不过20KB,解决方法有很多,这里介绍几个简单粗暴的方法。这里使用windows系统作为演示,其他系统对号入座即可。

git强制覆盖master分支

在开发中,通常会保持两个分支master分支和develop分支,但是如果因为develop上面迭代太多而没有及时维护master,最后想丢弃master而直接将测试确认过的develop强推到master,该怎么操作呢?因此,做如下总结分享,希望对遇到同样问题的人用帮助。

Git报错:remote: HTTP Basic: Access denied的解决方法

账号密码验证不通过,密码或者权限不对,导致 Git 操作失败。输入:git config --system --unset credential.helper,再次进行 Git 操作,输入正确的用户名,密码即可。

通过git命令,上传本地文件到git服务器

把本地代码上传到git的方法:步骤一:首先进入需要上传的项目文件夹,通过命令git init初始化,步骤二:将本地文件添加到版本库中,使用命令 git add . 将文件提交到本地的暂存区,步骤三:使用命令git commit将文件提交到本地仓库...

vscode git 全局忽略文件和文件夹

windows 中先在当前用户根目录下创建一个全局要忽略的文件列表.gitignore_global,window下 只有扩展名的文件不让保存,可以在 git bash中创建文件;二、 然后在命令行下执行下面git 命令

git合并分支

假如我们现在在dev分支上,刚开发完项目,执行了下列命令:想将dev分支合并到master分支,操作如下:首先切换到master分支上,如果是多人开发的话 需要把远程master上的代码pull下来

Git忽略规则文件.gitignore_关于.gitignore配置

.gitignore 文件的作用就是告诉git, push的时候忽略指定的文件夹或者文件,例如:vue-cli脚手架创建的项目,push到github上时,不会上传node依赖文件夹,这是因为vue-cli脚手架创建的时候,自动为我们创建了 .gitignroe文件,并且为我们写好了规则。

Git 如何撤回某一次提交?

在 master 分支做了一次 commit.之前没有出过这样的错误。就算出现也是直接push了然后再 reset 回滚然后再次 push -f。重置位置的同时,只保留Working Tree工作目录的內容

.gitignore的使用手册

避免将不必要的文件添加到版本管理系统中,比如前端的node_modules目录,该目录包含大量文件,如果将其添加到版本管理系统中,会使仓库变的庞大,不利于仓库的管理。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!