国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【git規(guī)范--husky的使用】

這篇具有很好參考價值的文章主要介紹了【git規(guī)范--husky的使用】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

git提交規(guī)范

一、 前言

在團(tuán)隊開發(fā)中,或者自己的項目中,我們都會用到git來管理我們的代碼,但是當(dāng)我們commit(git commit)的時候,是沒有規(guī)范的,有的時我們偷懶甚至git commit -m'..',這種提交雖然當(dāng)時爽,但如果有一天我們需要回滾版本的時候,git relog,媽耶,這都是啥啊,如果在團(tuán)隊開發(fā)中這種情況更讓人絕望。這時候,指定制定一套commit規(guī)范顯得格外重要,我們可以借助huskyCommitizen這兩個工具幫助我們來管理commit

二、2. Husky

定義

  • git有自己的hooks(鉤子),其實(shí)就是類似于vue的生命周期
    • 比如在提交代碼前,會調(diào)用pre-commit hook
    • 如果不好理解hook,那么你就想vue中,頁面加載時會先調(diào)用created函數(shù),當(dāng)commit的時候會先調(diào)用pre-commit,這么一舉例是不是好理解點(diǎn),如果還是不理解,沒關(guān)系,先用,后面有機(jī)會在理解
  • 這些hook都在.git/hooks中以.sample結(jié)尾的文件就是hook
  • 如果我們手動調(diào)用,那么就會很麻煩,所以husky這個工具就孕育而生,對,這個工具就是讓我們調(diào)用這些git hook簡單點(diǎn)

安裝

  • npx husky-init && npm install

  • 上面的命令會幫我們做以下的操作(官網(wǎng)給的解釋,可以了解即可)

    1. package.jsonscript中添加"prepare": "husky install",
    2. 在當(dāng)前根目錄創(chuàng)建.husky文件夾,并且在當(dāng)前文件夾中創(chuàng)建一個pre-commit的文件
      1. 這個文件其實(shí)就是一個可執(zhí)行文件,他的作用就是commit之前會調(diào)用這個文件
    3. 配置git hook的路徑

使用

  • 當(dāng)我們執(zhí)行g(shù)it commit時,就會先執(zhí)行pre-commit文件的內(nèi)容了

  • 我們可以在其中添加添加自己的命令,比如npx eslint

  • 意思是commit之前先用eslint來檢查代碼

  • #!/usr/bin/env sh
    . "$(dirname -- "$0")/_/husky.sh"
    
    npx eslint
    

添加hook

  • 上面說到在安裝的時候會幫我們創(chuàng)建一個pre-commithook文件,那么我們自己想要添加一個hook該怎么做呢,比如我們想要添加一個在commit時候執(zhí)行的hook

  • git hook 官網(wǎng)寫的很清楚哦,這里就不再細(xì)述每個hook是干嘛的了。git 鉤子

  • 做法很簡答,執(zhí)行以下命令即可

  • 解讀一下其實(shí)也不難

  • npx husky add .husky/commit-msg 使用husky在.husky文件夾下添加是commit-msg的鉤子

  • 'npx --no -- commitlint --edit "$1"' 表示在調(diào)用該hook時候要執(zhí)行的命令

  • 所以通用命令是npx husky add .husky/鉤子 '命令'

npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'

三、 Commitizen

定義和規(guī)范

  • 這是一個規(guī)范我們提交代碼的工具

規(guī)范

Type 作用
feat 新增特性 (feature)
fix 修復(fù) Bug(bug fix)
docs 修改文檔 (documentation)
style 代碼格式修改(white-space, formatting, missing semi colons, etc)
refactor 代碼重構(gòu)(refactor)
perf 改善性能(A code change that improves performance)
test 測試(when adding missing tests)
build 變更項目構(gòu)建或外部依賴(例如 scopes: webpack、gulp、npm 等)
ci 更改持續(xù)集成軟件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等
chore 變更構(gòu)建流程或輔助工具(比如更改測試環(huán)境)
revert 代碼回退

安裝

# 安裝Commitizen
npm install commitizen -D
# 安裝cz-conventional-changelog,并且初始化cz-conventional-changelog
npx commitizen init cz-conventional-changelog --save-dev --save-exact

使用

  • 安裝完畢后,之后我們要用npx cz來代替git commit

    • 安裝完畢后會在node_modules/bin創(chuàng)建一個cz的可執(zhí)行文件
  • 執(zhí)行npx cz會依次出現(xiàn)以下的選項

  • # 選擇一個此次commit的類型
    1.Select the type of change that you're committing: 
    # 此次commit影響的文件有哪些 比如我這次提交只是修改a.vue中的某個東西 那么就只影響到a.vue
    2.What is the scope of this change (e.g. component or file name):
    # 簡短的描述一下這次具體的改動最多91個字符
    3. Write a short, imperative tense description of the change (max 91 chars)
    # 詳細(xì)的描寫一下你的改動 如果沒有按空格鍵跳過
    4.Provide a longer description of the change: (press enter to skip)
    # 這次改動是重大的改動嗎 (比如發(fā)布了大的版本)
    5.Are there any breaking changes? 
    # 這次改動修復(fù)了別人提交的issues(這個選項針對開源項目,寫n即可)
    6.Does this change affect any open issues? 
    
  • 完成以上的步驟你的commit才算是完成

修改commitizen提交指令

  • 如果不想每次都是用npx cz,有的人會感覺別扭,或者記不住

  • 這時候可以在package.jsonscript添加一個指令

  • {
      "script": {
        commit: "cz"
      }
    }
    
  • 這樣我們就可以使用npm run commit來代替git commit

四、代碼提交驗證

  • 上面我們雖然規(guī)范了代碼提交的風(fēng)格,但是我們commit的時候不按照該規(guī)范依然可以提交成功,那么這時候這個就成了防君子不防小人了,團(tuán)隊中難免有漏網(wǎng)之魚(哈哈哈~)
  • 所以我們還需要通過commitlint來限制提交

安裝

  • npm i @commitlint/config-conventional @commitlint/cli -D
    

使用

  • 步驟一:在根目錄添加commitlint.config.js文件

  • 步驟二:配置文件

  • // 我們這里直接繼承官方給的默認(rèn)規(guī)則,如果想要更改,自動查
    module.exports = {
      extends: ['@commitlint/config-conventional']
    }
    
  • 步驟三:使用husky生成commit-msg(這是commit時的hook)文件,驗證提交信息:

  • npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
    
  • 現(xiàn)在我們commit的時候如果不符合規(guī)范是無法commit哦

注意

如果遇到commitlint.config.js is treated as an ES module file as it is a .js file...這個錯誤,是因為在package.json文件中添加了 "type": "module",將這個屬性刪除即可,或者將js文件的后綴改為.cjs即可,因為"type": "module"這個屬性是表示該項目都要用es module的方式導(dǎo)出導(dǎo)入文章來源地址http://www.zghlxwxcb.cn/news/detail-744497.html

到了這里,關(guān)于【git規(guī)范--husky的使用】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 代碼提交規(guī)范-ESLint+Prettier+husky+Commitlint

    代碼提交規(guī)范-ESLint+Prettier+husky+Commitlint

    先看下思維導(dǎo)圖分析 裝包配置.eslintrc.js 配置忽略文件 運(yùn)行 詳細(xì)講解 以react 項目為例 配置文件 eslintrc文件 根目錄/.eslintrc.js 設(shè)置忽略文件 .eslintignore 主要步驟 配置perttier 配置忽略文件 處理eslint的沖突 配置vscode的setting.json 配置.prettierrc.js文件 判斷是否生效直接使用命令 n

    2024年02月04日
    瀏覽(18)
  • 從0搭建Vue3組件庫(十三):引入Husky規(guī)范git提交

    從0搭建Vue3組件庫(十三):引入Husky規(guī)范git提交

    雖然我們項目中引入了 prettier 和 eslint 對代碼格式進(jìn)行了校驗,但是多人開發(fā)的時候難免依然會有人提交不符合規(guī)范的代碼到倉庫中,如果我們拉取到這種代碼還得慢慢對其進(jìn)行修改,這是一件很麻煩的事情,同時也為了避免團(tuán)隊成員提交五花八門message,因此我們可以引入 husky 來從

    2024年02月07日
    瀏覽(24)
  • React 項目配置代碼提交規(guī)范 ESLint、Pretttier、Husky、CommitLint

    React 項目配置代碼提交規(guī)范 ESLint、Pretttier、Husky、CommitLint

    React 項目配置代碼提交規(guī)范 ESLint、Pretttier、Husky、CommitLint 前言 團(tuán)隊開發(fā)的成員越來越多,項目都是由多個人進(jìn)行開發(fā)和維護(hù),每個人的代碼書寫習(xí)慣和風(fēng)格又不盡相同,commit 的提交log 也是亂七八糟,為以后的開發(fā)和維護(hù)增添了很多困難,所以規(guī)范和約束在多人協(xié)作下,就

    2024年04月15日
    瀏覽(34)
  • git commit使用husky校驗代碼格式報錯 因為沒有將鉤子 ‘.husky/pre-commit‘ 設(shè)置為可執(zhí)行

    git commit使用husky校驗代碼格式報錯 因為沒有將鉤子 ‘.husky/pre-commit‘ 設(shè)置為可執(zhí)行

    系統(tǒng) mac husky一直沒什么問題,有一天發(fā)現(xiàn)給git commit 的時候 終端報錯 解決辦法 之后在git commit 發(fā)現(xiàn),husky是可以工作但是還是有報錯信息 這個錯誤是由于系統(tǒng)無法找到 ‘.husky/commit-msg’ 文件或目錄導(dǎo)致的。通常,這是因為你的項目中缺少了 ‘.husky’ 目錄或者該目錄中缺少

    2024年04月09日
    瀏覽(89)
  • 詳細(xì)說明使用husky規(guī)范前端項目搭建

    詳細(xì)說明使用husky規(guī)范前端項目搭建

    什么是husky: 操作git hook的工具,主要實(shí)現(xiàn)代碼提交前 eslint 校驗和 commit 信息的規(guī)范校驗,也可以避免多人合作時代碼格式化不統(tǒng)一造成的沖突 什么是git hook: 通常分為客戶端鉤子和服務(wù)端鉤子,這里主要介紹客戶端鉤子。 pre-commit: 該鉤子在鍵入提交信息前運(yùn)行。 它用于檢

    2024年02月11日
    瀏覽(23)
  • 【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配置 Git 提交規(guī)范

    本文介紹 vue3-element-admin 如何通過 Husky + Lint-staged + Commitlint + Commitizen + cz-git 來配置 Git 提交代碼規(guī)范。 核心內(nèi)容是配置 Husky 的 pre-commit 和 commit-msg 兩個鉤子: pre-commit :Husky + Lint-staged 整合實(shí)現(xiàn) Git 提交前代碼規(guī)范檢測/格式化 (前提:ESlint + Prettier + Stylelint 代碼統(tǒng)一規(guī)范);

    2023年04月17日
    瀏覽(47)
  • 配置 Git Husky 代碼提交約束

    Git Husky 是一個可以管理 Git Hooks 的工具,它可以幫助我們在代碼提交的時候運(yùn)行腳本,以確保代碼提交符合特定的規(guī)范和約定。 在 Git 中,允許在操作特定的事件時執(zhí)行特定的腳本,這些事件我們稱之為 Hooks 。 Git Husky 利用這些 Hooks 實(shí)現(xiàn)了在代碼提交前、提交信息規(guī)范校驗等

    2024年02月03日
    瀏覽(110)
  • 如何規(guī)范使用Git及提交代碼的要求

    Git是目前最流行的版本控制系統(tǒng)之一,它可以幫助開發(fā)人員更好地管理代碼版本,并協(xié)作開發(fā)。使用Git進(jìn)行代碼管理需要遵循一些規(guī)范和技巧,本文將介紹如何規(guī)范地使用Git,常用的Git命令和技巧,以及如何創(chuàng)建分支和提交代碼。 規(guī)范地使用Git可以幫助團(tuán)隊更好地協(xié)作開發(fā),

    2024年02月15日
    瀏覽(25)
  • git代碼提交規(guī)范、強(qiáng)制git代碼提交規(guī)范、強(qiáng)制代碼進(jìn)行格式化

    git代碼提交規(guī)范、強(qiáng)制git代碼提交規(guī)范、強(qiáng)制代碼進(jìn)行格式化

    1、安裝commitizen和cz-customizable npm install -g commitizen@4.2.4 npm i cz-customizable@6.3.0 --save-dev 2、在package.json中進(jìn)行新增 \\\"config\\\": { ? \\\"commitizen\\\": { ? ? \\\"path\\\": \\\"node_modules/cz-customizable\\\" ? } } 3、初始化完成之后 將.cz-config.js配置文件 拖到根目錄下 4、之后就可以用 git cz 來代替 git commit ? ?(在

    2024年02月13日
    瀏覽(30)
  • Git代碼提交規(guī)范

    Git 每次提交代碼,都是需要寫 Commit message(提交說明),否則就不允許提交。 Commit message 的格式 (三部分): Heaher ----- 必填 type --- 必需 scope --- 可選 subject --- 必需 Body ---- 可省略 Footer ---- 可省略 用于說明 commit ?的類別,僅支持允許以下7個標(biāo)識。 feat:新功能 (feature) fix: 修

    2023年04月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包