最近从svn转到git进行代码版本控制,今天了解了git commit规范化的一些知识后,写此文章记录下配置过程。

环境

编辑器使用的是vscode,项目框架是vue3.0

规范化工具

规范化git commit消息的工具commitizen

 # 将commitizen命令行安装到全局
npm install -g commitizen

安装完之后我们就项目中引进改工具,就可以规范commit行为了。提交的命令为git cz,如果还是用git commit命令进行提交,那么这个工具就不会起到什么作用了。

commitizen对commit规范化界面都是英文提示,这个时候我就想如果要汉化怎么办,这就有了下面一个工具的出现。

安装可定制的Commitizen插件cz-customizable

npm install cz-customizable --save-dev

安装cz-customizable可以配置自定义的commitizen配置文件,在自定义的配置文件中我就可以对配置进行汉化

  "config": {
"commitizen": {
"path": "./node_modules/cz-customizable"
},
"cz-customizable": {
"config": "my.cz-config.js" // 这里的文件名可以自定义,但是改文件需要放置在项目的根目录下
}
}

汉化完之后的效果是下面这样:

版本发布

进行commit规范化的好处是为了提高团队协作效率,使代码阅读性更强。还有另外一个节省后期维护版本信息的成本。通过规范化commit行为,我们可以通过自动化工具生成版本信息这样极大的降低了维护成本,提高了工作效率。在这里我使用的版本发布工具是standard-version,当然还有conventional-changelog可以使用。

standard-version可以自动帮助我们做以下几件事情:

  1. 自动在数据中生成版本号
  2. 使用conventional-changelog更新 CHANGELOG.md
  3. 提交package.json (如果有) 和 CHANGELOG.md
  4. 给新版本打一个tag

首先是安装standard-version

npm i standard-version --save-dev

安装完成之后,执行standard-version命令,在控制台可以看到如下信息:

可以清楚的看到standard-version做了哪些事情。其中package.json和changelog.md文件是被自动提交了的。这样在项目中生成了一个changelog文件

# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### [0.3.2](http://112.80.40.2:11080/chenchent/cdss-acs/compare/v0.3.1...v0.3.2) (2019-07-25)

### [0.3.1](http://112.80.40.2:11080/chenchent/cdss-acs/compare/v0.3.0...v0.3.1) (2019-07-25)

### Bug Fixes

* 将commitizen使用本地配置文件 ([4accd0a](http://112.80.40.2:11080/chenchent/cdss-acs/commit/4accd0a))

## [0.3.0](http://112.80.40.2:11080/chenchent/cdss-acs/compare/v0.2.0...v0.3.0) (2019-07-25)

### Bug Fixes

- **changelog:** 生成新的 changelog 文件 ([17747cf](http://112.80.40.2:11080/chenchent/cdss-acs/commit/17747cf))

### BREAKING CHANGES

- **changelog:** 测试

## 0.2.0 (2019-07-25)

### Features

- **me:** 测试 ([64e596d](http://112.80.40.2:11080/chenchent/cdss-acs/commit/64e596d))

# 0.1.0 (2019-07-25)

### Features

- **me:** 测试 ([64e596d](http://112.80.40.2:11080/chenchent/cdss-acs/commits/64e596d))

由于我习惯于使用node命令,所以最后我又将规范化跟版本生成的命令配置到了scripts中

  "scripts": {
"commit": "git cz",
"changelog": "standard-version --dry-run && standard-version"
# standard-version --dry-run只是用来打印要做的事情,并不会做实际的操作
}

这就是我对git commit规范化的一些实践。mark下来做一个记录,希望可以帮助到其他人。

git commit规范化实践的更多相关文章

  1. [git 学习篇] git commit原理 --实践体会

    1 现对readme.txt作出修改,增加一行内容: Git has a mutable index called stage. Git is a distributed version contro ...

  2. 项目git commit时卡主不良代码:husky让Git检查代码规范化工作

    看完 <前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) https://www.cnblogs.com/Yellow-ice/p/15349873 ...

  3. 如何写好 Git commit messages

    导语:任何软件项目都是一个协作项目,它至少需要2个开发人员参与,当原始的开发人员将项目开发几个星期或者几个月之后,项目步入正规.不过他们或者后续的开发人员仍然需要经常提交一些代码去修复bug或者实现新 ...

  4. Android Studio Git 分支使用实践

    新公司有些项目是用的 Git,以前公司都是 svn,为了练手 Git,我个人 APP 用到了,但是仅简单的 git pull/push 的使用,并未用到 Git 精髓,只有当项目中用到,才会紧迫去全面 ...

  5. 从code review到Git commit log

    最近在读一本技术类的书:朱赟——<跃迁:从技术到管理的硅谷路径>,其中聊了很多很有趣的观点,比如:技术管理.技术实践.硅谷文化.个人成长等. 读到关于硅谷人如何做code review这一 ...

  6. git入门与实践【转】

    转自:http://www.cnblogs.com/shenhaocn/archive/2011/03/13/1982957.html 什么是版本控制 要了解什么是git,首先需要了解什么是版本控制( ...

  7. 为什么要先 git add 才能 git commit

    1. git 的 add ,是一个容易引起疑问的命令.在 subversion 中的 svn add 动作是将某个文件加入版本控制,而 git add的意义完全不同. 同时, git diff --c ...

  8. [原创]升级Gerrit的commit-msg,检查git commit时必须填写开发任务编号TaskID

    公司使用git+gerrit+jenkins进行持续集成实践,其中gerrit用来进行Code Review.另外我们自己研发了一套敏捷项目管理系统TPM(TeamPlus Management),用 ...

  9. git commit的规范

    https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上 ...

随机推荐

  1. spring通过注解方式依赖注入原理 (私有成员属性如何注入)

    一.spring如何创建依赖的对象 用过spring的都知道我们在dao.service层加上@repository.@Service就能将这两个对象交给spring管理,在下次使用的时候使用@res ...

  2. Python 爬虫从入门到进阶之路(六)

    在之前的文章中我们介绍了一下 opener 应用中的 ProxyHandler 处理器(代理设置),本篇文章我们再来看一下 opener 中的 Cookie 的使用. Cookie 是指某些网站服务器 ...

  3. java集合的方法及使用详解

    一.java集合的分类及相互之间的关系 Collection接口:向下提供了List和Set两个子接口 |------List接口:存储有序的,存储元素可以重复 |------ArrayList(主要 ...

  4. Java NIO 学习笔记(三)----Selector

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  5. appcan中evaluateScript、evaluatePopoverScript的使用

    1. 如果要在某个主窗体中执行JS,使用 appcan.window.evaluateScript(name,scriptContent) eg: appcan.window.evaluateScri ...

  6. Java学习笔记——Socket实现文件传输

    我越是逃离,却越是靠近你. 我越是背过脸,却越是看见你. 我从你开始, 我在你结束. 需求:实现局域网下socket传输文件. 客户端步骤: 1.建立与服务器的连接 2.创建client输出流 3.创 ...

  7. Docker启动一个Centos镜像,在docker中安装ifconfig和ssh

    执行docker search centos 现在最流行的Linux嘛.查了下,排名第一的(STARS最多1882)官方版,就是你了 果断拿下, docker pull centos,看网速了静等拿下 ...

  8. C语言版数据结构笔记

    现在把以前学的数据结构知识再理一遍,上机测试.首先最重要的是链表.在我看来,链表其实就是由一个个结构体连接而成的,创建一个链表有多种方式,头插法,尾插法等,这里采用的是尾插法.表述有不对的地方,欢迎更 ...

  9. JUnit-4.13使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误

    今天重新复习spring的时候,调用Junit架包来进行测试,进入其官网  https://junit.org/junit5/,点击右上角的Junit4进行查看 2.出现了的页面是这个样子 我把这个页 ...

  10. 2019年6月份,阿里最新Java高频面试真题汇总,仅供参考(附福利)

    目录 技术一面(23问) 技术二面(3大块) JAVA开发技术面试中可能问到的问题(17问) JAVA方向技术考察点(33快) 项目实战(7大块) 必会知识(48点) 面试小技巧 注意事项 1. 阿里 ...