git commit規範化

git commit規範化

項目中,每次使用git提交代碼時都需要填寫提交信息,每個人填寫提交信息的風格都不一樣,爲了保持項目中git commit一致性,就需要對git commit進行規範化處理,規範的git commit 可以讓項目的提交信息整潔明瞭,也可以讓我們通過提交信息可以清晰的知道本次提交的內容,出現問題時也可以更快速的查詢問題,如果項目需要生成changelog日誌,規範的git commit可以讓我們使用工具快速生成changelog日誌

目前git commit 規範使用最多的是按照Angular團隊使用的規範,提交信息都包括三個部分:Header,Body 和 Footer,如下:

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

其中,Header 是必需的,Body 和 Footer 可以省略。

項目中使用:

1、安裝commitizen依賴

npm install --save-dev commitizen

使用commitizen的命令是git-cz,如果我們全局安裝commitizen,就可以直接在項目中使用git-cz命令,否則需要使用npx git-cz來執行,爲了以後使用方便,我們可以在package.jsonscripts中進行如下配置:

// package.json
{
	"scripts": {
		...
		"commit": "git-cz",
		...
	}
}

這樣我們就可以通過在命令行工具中使用npm run commit來使用commitizen

2、commitizen需要配合着適配器使用,安裝cz-conventional-changelog依賴,可以讓我們自己項目的git提交信息符合Angular團隊的規範

npm install --save-dev cz-conventional-changelog

package.json文件中配置cz-conventional-changelog的使用:

// package.json
{
	...
	"config": {
		"commitizen": {
			"path": "node_modules/cz-conventional-changelog"
		},
	}
	...
}

此時,在提交代碼時,我們就可以通過npm run commit命令按照Angular團隊的規範來提交信息。但是由於沒有進行強制校驗,如果還是按照以往使用git commit -m <提交信息>提交任何風格的信息也是可以的,爲了保證提交信息規範性,使用huskycommitlint對提交信息進行強制校驗,其中commitlint用於校驗提交信息是否符合規範,使用huskycommit-msg鉤子可以讓我們在每次提交信息前觸發commitlint校驗。

3、信息校驗時除了安裝@commitlint/clihusky外,還要按照需要遵循的規則,我們繼續使用Angular團隊信息提交規範,安裝@commitlint/config-conventional

npm install --save-dev @commitlint/config-conventional @commitlint/cli
npm install --save-dev husky

然後在package.json中配置commitlinthusky如下:

// package.json
{
	...
	"commitlint": {
		"extends": [
			"@commitlint/config-conventional"
		]
	},
	"husky": {
		"hooks": {
			"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
		}
	}
	...
}

husky可以在我們執行git commit調用commitlint對提交信息進行格式校驗,校驗失敗則提交失敗,只有校驗成功才能提交

至此,git commit規範化已完成,我們可以使用npm run commit採用問答交互式的方法創建git commit,也可以自行按照規範進行git commit提交。

可能遇到的問題:

1、安裝之後,git commithusky校驗提交信息不生效
解決辦法:git版本太低,升級git版本可解決,husky要求的git版本最低2.13.2
在這裏插入圖片描述
2、在執行npm run commit在git中出現交互式界面時,上下選擇不生效(針對windows用戶)
解決辦法:在C盤》用戶》自己名字 目錄下找到.bashrc文件,在文件中添加alias npm='winpty npm.cmd',保存即可

參考文獻:

[1] 優雅的提交你的 Git Commit Message
[2] Commit message 和 Change log 編寫指南

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章