当前位置:   article > 正文

Git版本管理工具使用知识汇总_config-conventional length

config-conventional length

Git版本管理工具使用知识汇总

版本管理在软件开发中是非常重要的,版本管理可以有效的降低代码版本丢失风险,极大的方便了软件开发中不同版本代码的管理。

本文内容包括:

  • 如何使用git工具
  • 规范化commit信息的格式
  • 使用commitlint验证commit信息的格式是否符合规范
  • 使用husky强制执行commit格式的规范化验证
  • 如何在代码提交前对代码格式验证
  • 最后封装成一键脚本自动化配置 commitizen

版本管理工具有很多:

  • svn :中心化在线版本管理控制工具,老旧的版本管理工具。
  • git :分布式版本控制工具,支持离线版本管理,目前主流的版本管理工具。

安装Git

Git网站

这里有不同平台的所有安装包,安装后你可以通过git命令或者GUI窗口进行版本管理。

了解Git命令

初学者对git版本管理有点迷糊,没关系,这里有个Git CheatSheet 帮你快速理解Git的工作原理及命令的作用。

访问 Git Cheat Sheet 学习一下Git命令用法。

在这里插入图片描述

规范化commit信息格式

由于commit 提交信息的作用是描述本次提交的改动信息及原因,可往往开发者处于懒惰而省略了很多描述信息,这将导致我们对git项目提交信息的管理变得困难,因此就产生了 commitizen 工具,帮我们规范化 代码提交信息。

提交信息可以告诉阅读这当前提交做了些什么变更,是代码修改了或者文档变更等等。这样,阅读这可以选择性的审阅代码内容。可以让提交信息更加有价值和实际的意义。

常规的commit的message格式规范化(主流Angular规范)如下:

<header>
<空行>
<body>
<空行>
<footer>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 目前很少用到,本用于更详细的说明每一个改动点,但对于每次只提交一小部分改动的变更,只需要填写subject概述信息就足够了。

  • 包含有关重大更改和弃用的信息,常规小改动很少用到。 若看到 **"BREAKING CHANGE: " ** 表示本次提交有重大改动,而 "DEPRECATED: " 则表示本次提交弃用了某些内容。

  • <header> 包含提交信息的概述,必填字段,此部分信息的常用Angular规范格式如下:

<type>(<scope>?): <subject>
  │       │             │
  │       │             └─⫸变更内容概述信息,英文不区分大小写,行末不能有句点(.)结束.
  │       │
  │       └─⫸ 提交范围,可选字段.
  │
  └─⫸ 提交类型(变更分类): build|ci|docs|feat|fix|perf|refactor|test
  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Type 字段取值含义:

  • feat : 新增加功能特性
  • fix : 修复bug
  • refactor: 一些代码结构上的优化,没有新特性和bug修复.
  • perf : 性能优化的代码改动
  • release: release版本提交
  • chore: 一些与主要业务无关的构建/工程依赖/工具等功能改动
  • ci : CI持续集成提交变更
  • docs: 文档更新
  • style: 码的样式美化,不涉及到功能修改等
  • test: 测试代码相关新增或变更

Scope字段为影响范围,很少用到,想了解可以去阅读Angular Commit Message Guidelines 详细相关说明。

Subject内容通常为提交内容的概述文本,用于说明本次提交做了哪些改动,以及改动原因或目标等。

到这里,我们基本了解了commit常用的规范化格式信息,当然Angular规范化格式只是比较流行的其中一种,还有些其他类似的格式,这里不再介绍。

开始安装commitizen规范化工具

每次都按照上面格式人工拼写难免会有出错的可能,所以下面就来介绍如何通过工具来辅助我们实现 规范化的commit文本提交。

安装 commitizen工具

npm安装方式有两种,本地安装和全局安装,个人比较推荐全局安装,养成一个好的版本提交规范化习惯很重要。

前提依赖:

全局安装方法:

npm install -g commitizen
或者
npm install --location=global commitizen

npm install -g cz-conventional-changelog

echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

本地安装方法:

npm install --save-dev commitizen
  • 1

安装完毕后,使用conventional-changelog初始化项目,命令如下:

commitizen init cz-conventional-changelog --save-dev --save-exact
  • 1

如果遇到错误,提示已经初始化过,可以使用--force参数强制重新初始化一次。

执行成功后,我们看到当前项目多了如下几个文件和目录:

node_modules  package.json  package-lock.json
  • 1

其中 package.json 文件内容多了如下部分:

{
  "devDependencies": {
    "cz-conventional-changelog": "^3.3.0"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

到这里,我们就可以使用 git cz命令提交规范化文本信息了:

image-20220812212740915

对于英文不好的朋友,还可以使用git-cz替代commitizen, 应为 git-cz支持配置定制,我们可以配置后实现中文提示,效果如下:

image-20220812215618409

这样是不是很人性化呢? 具体使用可以直接访问Github项目地址 ,安装后,在项目根目录下添加如下文件即可达到效果:

// 文件名: changelog.config.js 
// 作用: commit 规范化配置
// 参考文档:https://github.com/streamich/git-cz

module.exports = {
  disableEmoji: true,
  // format: '{type}{scope}: {emoji}{subject}',
  list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf', 'build'],
  maxMessageLength: 72,
  minMessageLength: 3,
  questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'],
  scopes: [],
  types: {
    chore: {
      description: '一些与主要业务无关的构建/工程依赖/工具等功能改动',
      emoji: '
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/909265
推荐阅读
相关标签