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