git commit規范
git-commit規范
在多人協作項目中,如果代碼風格統一、代碼提交信息的說明準確,那么在后期協作以及Bug處理時會更加方便
目的
- 統一團隊Git commit日志標準,便于后續代碼review,版本發布以及日志自動化生成等等。
- 統一團隊的Git工作流,包括分支使用、tag規范、issue等
提交規范
提交格式:<type>(<scope>): <describe> // 注意:冒號后面有空格
-
type: 提交類型,其中type的值可以有很多,下面有幾個我們常用到的:
- feat:新功能(feature)
- fix:修補bug
- docs:文檔(documentation)
- style: 格式(不影響代碼運行的變動)
- refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
- test:增加測試
- chore:構建過程或輔助工具的變動
scope: 用來說明此次修改的影響范圍,可以根據自己的習慣寫,比如習慣按照功能模塊劃分,則可以寫login,regist等改動的模塊,如果習慣按照改動的目錄來劃分,也可以寫store,service,page等等,也可以忽略不寫,不能使用駝峰格式。
describe: 提交描述
示例
git commit -am 'fix(location): 登錄接口地址修改'
commit hook插件接入
- package.json中添加以下代碼,并執行npm install
"scripts": {
"log": "conventional-changelog -p angular -i CHANGELOG.md -s -w -r 0"
},
"devDependencies": {
"@commitlint/cli": "7.0.0",
"@commitlint/config-conventional": "7.0.1",
"conventional-changelog-cli": "2.0.1",
"husky": "1.0.0-rc.13",
}
"config": {
"commitizen": {
"path": "cz-customizable"
}
},
"husky": {
"hooks": {
"commit-msg": "commitlint --env HUSKY_GIT_PARAMS",
"post-commit": "npm run log"
}
}
- 項目根目錄新建文件:commitlint.config.js, 添加以下內容:
/**
* feat:新功能(feature)
* fix:修補bug
* docs:文檔(documentation)
* style: 代碼格式(不影響代碼運行的變動)
* refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
* test:增加測試
* chore:構建過程或輔助工具的變動
*
* 提交格式:<type>(<scope>): <describe> 其中scope可忽略
*
* 提交實例: git commit -am 'fix(location): 登錄接口地址修改'
*
*/
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore', 'revert'
]],
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never']
}
};
- 將CHANGELOG.md文件添加進.gitignore中,防止每次提交完成之后再生成需要提交的CHANGELOG
查看日志
- 通過git log命令查看提交日志,可以選擇類型查看,使用命令:git log --grep xxx(搜索內容),比如執行:git log --grep feat,將展示所有feat類型的提交
- 執行 npm run log,生成本地CHANGELOG.md文件。其中,CHANGELOG中將只列出fix和feat類型的提交記錄