国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何文明提交代碼

BaronZhang / 748人閱讀

摘要:程序員最煩的幾件事寫測(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ī)則

雖然規(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+pcommand+shift+p 提交。

Lint 一 Lint 萬(wàn)無(wú)一失

沒(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

相關(guān)文章

  • 云計(jì)算只是云計(jì)算?那你就錯(cuò)了

    摘要:有了云計(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)為云...

    姘存按 評(píng)論0 收藏0
  • js、jQuery實(shí)現(xiàn)文字上下無(wú)縫輪播、滾動(dòng)效果

    摘要:因項(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: ...

    zhangwang 評(píng)論0 收藏0
  • js、jQuery實(shí)現(xiàn)文字上下無(wú)縫輪播、滾動(dòng)效果

    摘要:因項(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: ...

    PAMPANG 評(píng)論0 收藏0
  • js、jQuery實(shí)現(xiàn)文字上下無(wú)縫輪播、滾動(dòng)效果

    摘要:因項(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: ...

    focusj 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<