git commit規范化實踐


最近從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下來做一個記錄,希望可以幫助到其他人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM