成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

如何文明提交代碼

BaronZhang / 808人閱讀

摘要:程序員最煩的幾件事寫測試,變量命名,還有填代碼提交信息。其實的作用遠不止如此,經(jīng)過簡單的配置便可無痛成為代碼提交的文明公民。好的提交歷史可以方便其他人參與進來,也可以方便自己快速定位問題。

程序員最煩的幾件事:寫測試,變量命名,還有填代碼提交信息(commit message)。翻幾個開源項目遍馬上可以回味那作文湊字數(shù)的青春時光。

其實 commit message 的作用遠不止如此,經(jīng)過簡單的配置便可無痛成為代碼提交的文明公民。

Commit Message 的作用

最起碼的一點,項目的提交歷史是其他人(包括未來的自己)了解項目的一個重要途徑。好的提交歷史可以方便其他人參與進來,也可以方便自己快速定位問題。

此外,提交信息還可以用來觸發(fā) CI 構(gòu)建,自動生成 CHANGELOG ,版本自動語義化提升…… 只需要一點點配置就可以干這么多,真是懶人必備。

選擇風格

跟 Code Style 一樣,Commit Message 也有各種風格。如果沒什么特殊癖好推薦用基于 Angular ,
后獨立開來的 Conventional Commits 風格。
它也基本是各個工具的默認配置,所以搭配起來不需要折騰。

才不要又記什么規(guī)則

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

Lint 一 Lint 萬無一失

沒錯,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 中加入小徽章可方便其他人了解風格。

[![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"
    }
  },
}

項目根新建 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

相關(guān)文章

  • 云計算只是云計算?那你就錯了

    摘要:有了云計算,將計算機系統(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ā)展起來的。我認為云...

    姘存按 評論0 收藏0
  • js、jQuery實現(xiàn)文字上下無縫輪播、滾動效果

    摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...

    zhangwang 評論0 收藏0
  • js、jQuery實現(xiàn)文字上下無縫輪播、滾動效果

    摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...

    PAMPANG 評論0 收藏0
  • js、jQuery實現(xiàn)文字上下無縫輪播、滾動效果

    摘要:因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 因項目需要實現(xiàn)消息通知上下無縫輪播的效果,所以寫了一下,在這個分享出來,希望再次遇到此需求的道友,可以直接拷貝來用,節(jié)約一點不必要的時間。 原生JS版本 文字上下無縫輪播 * { margin: ...

    focusj 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<