最近從svn轉到git進行代碼版本控制,今天瞭解了git commit規範化的一些知識後,寫此文章記錄下配置過程。 環境 編輯器使用的是vscode,項目框架是vue3.0 規範化工具 規範化git commit消息的工具commitizen 安裝完之後我們就項目中引進改工具,就可以規範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可以自動幫助我們做以下幾件事情:
- 自動在數據中生成版本號
- 使用conventional-changelog更新 CHANGELOG.md
- 提交package.json (如果有) 和 CHANGELOG.md
- 給新版本打一個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下來做一個記錄,希望可以幫助到其他人。