工程化:Commitlint / 規范化Git提交消息格式

一、理解Commitlint

Commitlint是一個用于規范化Git提交消息格式的工具。它基于Node.js,通過一系列的規則來檢查Git提交信息的格式,確保它們遵循預定義的標準。

1.1、Commitlint的核心功能

代碼規則檢查:Commitlint基于代碼規則進行檢查,這些規則可以自定義以適應項目的特定需求。例如,可以設置規則來要求所有的函數都有明確的參數列表等。
多種編程語言和框架支持:Commitlint支持多種編程語言和框架,如JavaScript、Python、React、Angular等,使其能夠適應各種項目需求。
可視化報告和警告:Commitlint提供可視化報告和警告,幫助團隊成員了解有關代碼問題的詳細信息。

1.2、Commitlint的工作流程

它在Git的commit-msg鉤子中運行,這意味著每次提交時,Commitlint都會自動檢查提交信息。
如果提交信息不符合規則,Commitlint會阻止提交并給出錯誤提示。

此外,Commitlint與Husky等工具可以配合使用,確保代碼在提交到版本控制系統之前經過檢查和驗證。

二、vue3 + ts 項目使用Commitlint

pnpm add  @commitlint/cli @commitlint/config-conventional

pnpm add husky

.commitlintrc.js

module.exports = {  extends: ['@commitlint/config-conventional'],  
};

測試

提交成功

驗證通過

三、過程記錄

3.1、.commitlintrc.js

.commitlintrc.js?是一個配置文件,用于 Commitlint,一個工具,用于幫助你在 Git 倉庫中強制執行一致的 commit message 格式。Commitlint 允許你定義規則,這些規則會在你嘗試提交一個新的 Git commit 時被檢查。

這個文件通常包含一個配置對象,該對象定義了你希望 Commitlint 遵循的規則。

以下是一個簡單的?.commitlintrc.js?示例:

module.exports = {  extends: ['@commitlint/config-conventional'], // 使用常規的 commitlint 配置文件  rules: {  'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'build', 'ci', 'chore', 'revert']], // 定義允許的提交類型  'scope-case': [2, 'always', 'lower-case'], // 強制提交范圍為小寫  'subject-case': [0], // 不強制主題大小寫(但通常建議使用 sentence-case)  'subject-empty': [2, 'never'], // 禁止空的提交主題  'subject-full-stop': [0, 'never'], // 不強制主題以句號結尾  'header-max-length': [2, 'always', 72], // 強制 header 最大長度為 72 個字符  'body-leading-blank': [1, 'always'], // 強制 body 前面有一個空行  'footer-leading-blank': [1, 'always'], // 強制 footer 前面有一個空行  'footer-max-line-length': [2, 'always', 80], // 強制 footer 的每行最大長度為 80 個字符  },  parserPreset: {  parserOpts: {  headerPattern: /^(\w*)(?:\(([\w$\.,\s]*?)\))?\s*:(.*)$/, // 自定義 header 的正則表達式  headerCorrespondence: ['type', 'scope', 'subject'], // 與 headerPattern 匹配的部分  },  },  
};

四、歡迎交流指正

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42429.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42429.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42429.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

匯聚榮拼多多電商的技巧有哪些?

在電商平臺上,匯聚榮拼多多以其獨特的商業模式和創新的營銷策略吸引了大量消費者。那么,如何在這樣一個競爭激烈的平臺上脫穎而出,成為銷售佼佼者呢?本文將深入探討匯聚榮拼多多電商的成功技巧。 一、精準定位目標客戶群體 首先,…

Python魔法函數(Magic Methods簡介

在 Python 中,魔法函數(Magic Methods)也稱為雙下劃線方法(Dunder Methods),是指那些名字以雙下劃線開頭和結尾的特殊方法。 這些方法可以讓您的自定義類實現一些特定的行為,從而與 Python 的內…

絕區肆--2024 年AI安全狀況

前言 隨著人工智能系統變得越來越強大和普及,與之相關的安全問題也越來越多。讓我們來看看 2024 年人工智能安全的現狀——評估威脅、分析漏洞、審查有前景的防御策略,并推測這一關鍵領域的未來可能如何。 主要的人工智能安全威脅 人工智能系統和應用程…

Qt 繪圖詳解

文章目錄 頭文件和構造函數啟用反鋸齒功能繪制矩形繪制圓角矩形繪制橢圓繪制圓弧繪制弦繪制凸多邊形繪制圖片繪制直線繪制多條直線繪制多點連接的線繪制路徑繪制扇形繪制點繪制文本擦除矩形區域填充矩形填充路徑 頭文件和構造函數 #include "mainwindow.h" #include…

C-11 三角剖分的調研

C-11 三角剖分算法 三角剖分就是將輸入的多邊形,分割成一系列互不重疊的三角形,其重要性就在這不多贅述。這個是一個別人總結的鏈接:http://vterrain.org/Implementation/Libs/triangulate.html 圖片鏈接:http://www-cgrl.cs.m…

基于CentOS Stream 9平臺搭建MinIO以及開機自啟

1. 官網 https://min.io/download?licenseagpl&platformlinux 1.1 下載二進制包 指定目錄下載 cd /opt/coisini/ wget https://dl.min.io/server/minio/release/linux-amd64/minio1.2 文件賦權 chmod x /opt/coisini/minio1.3 創建Minio存儲數據目錄: mkdi…

springboot校園安全通事件報告小程序-計算機畢業設計源碼02445

Springboot 校園安全通事件報告小程序系統 摘 要 隨著中國經濟的飛速增長,消費者的智能化水平不斷提高,許多智能手機和相關的軟件正在得到更多的關注和支持。其中,校園安全通事件報告小程序系統更是深得消費者的喜愛,它的出現極大…

關于隱藏、覆蓋(重寫)、重載的理解

定義區分 在派生-對象中:優先考慮隱藏,此時派生類中的覆蓋(重寫)也是隱藏;沒有隱藏的情況下,子類對象才能調用父類重載函數。[此時感覺virtual沒用,]在派生-指針或者引用中:只用覆蓋(重寫)和重載; 注:C Pr…

《Programming from the Ground Up》閱讀筆記:p19-p48

《Programming from the Ground Up》學習第2天,p19-p48總結,總計30頁。 一、技術總結 1.object file p20, An object file is code that is in the machine’s language, but has not been completely put together。 之前在很多地方都看到object fi…

高階K8S面試題你會幾個?

前言 K8S架構、公有云、持久化存儲、HELM、CICD、負載均衡、監控告警、可觀察性、服務治理、架構探索。。。 Q1:如何調試 Kubernetes 集群中的網絡連接問題,比如 Pod 間通信失敗的情況? 狀態檢查:使用 kubectl get pods 和 kube…

MySQL-17-mysql alter 語句如何實現?如何合并為一個

拓展閱讀 MySQL 00 View MySQL 01 Ruler mysql 日常開發規范 MySQL 02 truncate table 與 delete 清空表的區別和坑 MySQL 03 Expression 1 of ORDER BY clause is not in SELECT list,references column MySQL 04 EMOJI 表情與 UTF8MB4 的故事 MySQL 05 MySQL入門教程&a…

Git使用中遇到的問題(隨時更新)

問題1.先創建本地庫,后拉取遠程倉庫時上傳失敗的問題怎么解決? 操作主要步驟: step1 設置遠程倉庫地址: $ git remote add origin gitgitee.com:yourAccount/reponamexxx.git step2 推送到遠程倉庫: $ git push -u origin "master&qu…

線程池理解及7個參數

定義理解 線程池其實是一種池化的技術實現,池化技術的核心思想就是實現資源的復用,避免資源的重復創建和銷毀帶來的性能開銷。線程池可以管理一堆線程,讓線程執行完任務之后不進行銷毀,而是繼續去處理其它線程已經提交的任務。 …

GStreamer學習5----probe數據探測

參考資料: gstreamer中如何使用probe(探針)獲取幀數據_gstreamer 視頻編碼時獲取視頻關鍵幀信息-CSDN博客 Gstreamer中可以使用AppSink作為一個分支來查看管線中的數據,還可以使用probe去處理。 在GStreamer中,probe…

LayerNorm Plugin的使用與說明

目錄 前言0. 簡述1. Layernorm Plugin的使用1.1 源碼下載1.2 模型下載和修改1.3 環境配置1.4 編譯1.4 engine生成和執行(trtexec)1.5 enging生成和執行(C API) 2. 補充說明2.1 RTMO顯存占用問題2.2 插件找不到的說明2.3 LayerNorm plugin封裝的嘗試2.4 layerNorm plugin核函數實…

拉曼光譜入門:3.拉曼光譜的特征參數與定量定性分析策略

1.特征參數 1.1 退偏振率 退偏振率(p)是一個衡量拉曼散射光偏振狀態的參數,它描述了拉曼散射光的偏振方向與入射光偏振方向之間的關系。退偏振率定義為垂直偏振方向的拉曼散射強度與平行偏振方向的拉曼散射強度之比。退偏振率(p&…

禁用windows的語音識別快捷鍵win+ctrl+s

win11組合鍵winctrls會彈出語音識別提示,即使到設置里禁用了語音識別也沒用 解決辦法:安裝PowerToys,通過“鍵盤管理器”-“重新映射快捷鍵”禁用 PowerToys是微軟自己的工具,不用擔心安全問題,下載地址:h…

系統設計題-簡易數據庫系統

一、設計一個簡易數據庫系統,包含create,insert,select三個指令。 create(int tableId,int colNum,String key):創建表,其id為tableId,如果該表已存在,則不做任何處理。colNum為表中列的數量&a…

洛谷 P3008 [USACO11JAN] Roads and Planes G

題意 有一張 n n n 點 ( m 1 m 2 ) (m_1m_2) (m1?m2?) 邊的無向圖,其中 m 1 m_1 m1? 條為無向邊,另外 m 2 m_2 m2? 條為有向邊, 無向邊的邊權可以為負。求 s s s 到其他每個點的最短路。 思路 使用 SPFA 會 T 掉一兩個點&#x…

第10章:網絡與信息安全

目錄 第10章:網絡與信息安全 網絡概述 計算機網絡概念 計算機網絡的分類 網絡的拓撲結構 ISO/OSI網絡體系結構 網絡互聯硬件 物理層互聯設備 數據鏈路層互聯設備 網絡層互聯設備 應用層互聯設備 網絡的協議與標準 網絡標準 TCP/IP協議族 網絡接口層協…