摘要:程序員最煩的幾件事寫測試,變量命名,還有填代碼提交信息。其實的作用遠不止如此,經(jīng)過簡單的配置便可無痛成為代碼提交的文明公民。好的提交歷史可以方便其他人參與進來,也可以方便自己快速定位問題。
程序員最煩的幾件事:寫測試,變量命名,還有填代碼提交信息(commit message)。翻幾個開源項目遍馬上可以回味那作文湊字數(shù)的青春時光。
其實 commit message 的作用遠不止如此,經(jīng)過簡單的配置便可無痛成為代碼提交的文明公民。
Commit Message 的作用最起碼的一點,項目的提交歷史是其他人(包括未來的自己)了解項目的一個重要途徑。好的提交歷史可以方便其他人參與進來,也可以方便自己快速定位問題。
此外,提交信息還可以用來觸發(fā) CI 構(gòu)建,自動生成 CHANGELOG ,版本自動語義化提升…… 只需要一點點配置就可以干這么多,真是懶人必備。
選擇風格跟 Code Style 一樣,Commit Message 也有各種風格。如果沒什么特殊癖好推薦用基于 Angular ,
后獨立開來的 Conventional Commits 風格。
它也基本是各個工具的默認配置,所以搭配起來不需要折騰。
雖然規(guī)則不多,但不一定能隨時記住,特別是對新人,必須要有友好的方式提交。
commitizen 是一個很好的選擇,通過命令行回答幾個問題即可填完信息,減輕了記憶負擔。
它是一個通用的工具,通過插件方式支持各種風格。我們選擇 Conventional 需要安裝
cz-conventional-changelog 。
npm install --save-dev commitizen cz-conventional-changelog
然后配置 package.json 就可以通過 npm run commit 提交。
{ "scripts": { "commit": "git-cz" } }
另外 VSCode 用戶也可以用 vscode-commitizen ,
通過 ctrl+shift+p 或 command+shift+p 提交。
沒錯,Commit Message 也有 Linter ,可對 Commit Message 進行檢驗,杜絕打字手殘和渾水摸魚。
這里用 commitlint 配合 husky 實現(xiàn)自動檢測。
commitlint 也是通用的工具,需要同時安裝風格配置。 husky 可以方便使用 git hooks ,在 commit 時觸發(fā) commitlint 。
npm install --save-dev @commitlint/cli @commitlint/config-conventional husky
項目根新建 commitlint.config.js
module.exports = { extends: ["@commitlint/config-conventional"] }
配置 package.json
{ "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, }自動更新
最后安裝 standard-version 實現(xiàn)自動生成 CHANGELOG 和版本自動語義化提升。
npm install --save-dev standard-version
配置 package.json
{ "scripts": { "release": "standard-version" } }
第一次發(fā)布時可以用以下命令重置
npm run release -- --first-release
以后直接 npm run release 即可。
也可以手動指定版本:
# npm run script npm run release -- --release-as minor # Or npm run release -- --release-as 1.1.0小紅花貼起來
在 README 中加入小徽章可方便其他人了解風格。
[](http://commitizen.github.io/cz-cli/) [](https://conventionalcommits.org)完整配置
安裝
npm install --save-dev commitizen cz-conventional-changelog @commitlint/cli @commitlint/config-conventional husky standard-version
配置 package.json
{ "scripts": { "commit": "git-cz", "release": "standard-version" }, "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, }
項目根新建 commitlint.config.js
module.exports = { extends: ["@commitlint/config-conventional"] }
【完】
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/97964.html
摘要:有了云計算,將計算機系統(tǒng)維護的功能從企業(yè)內(nèi)分離出來,促進了社會分工。云計算促進向服務(wù)轉(zhuǎn)型云計算以三種形式提供服務(wù),和。云計算實際上是計算能力基于統(tǒng)一管理的基礎(chǔ)實施,以服務(wù)的形式提供給用戶的一種形式。從2012年創(chuàng)辦物聯(lián)網(wǎng)媒體開始研究物聯(lián)網(wǎng),2014年因為工業(yè)4.0概念開始關(guān)注智能制造,無論物聯(lián)網(wǎng),工業(yè)4.0,還是工業(yè)互聯(lián)網(wǎng),其特點都是一致的,這些概念都是在云計算技術(shù)突破后發(fā)展起來的。我認為云...
摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...
摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...
摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...
閱讀 3334·2021-10-11 10:59
閱讀 2913·2021-10-11 10:58
閱讀 2308·2021-09-04 16:45
閱讀 2796·2019-08-30 15:44
閱讀 732·2019-08-30 15:44
閱讀 3255·2019-08-30 10:51
閱讀 1659·2019-08-29 18:46
閱讀 2814·2019-08-29 13:57