Gitmoji x Conventional Commit 工作流 (二) - 使用 Commitlint + Husky 校驗提交格式
· 閱讀時間約 14 分鐘
前言
在上一篇文章中,我們介紹了如何透過 Commitizen 與 Gitmoji 規範化提交訊息。但規範的建立並不保證會被嚴格執行,許多團隊仍可能面臨這樣的情況:
「提交訊息格式看起來很簡單,但實際操作時,不是漏寫了類型,就是格式寫錯了。」
這種情況下,提交訊息的規範就形同虛設。因此,若要確保提交訊息始終符合規範,勢必得設立一道自動化檢核機制來攔截不合格的提交。
這正是 Commitlint 發揮作用的地方!它專門校驗提交訊息是否符合規範,無論是 Conventional Commits 還是 Gitmoji,都可透過自定義配置嚴格檢查,避免不合格的提交進入版本控制歷史。當然,工具的強大功能需要在正確的時間觸發才能發揮作用,搭配 Husky,我們能利用 Git hooks 在提交前自動執行 Commitlint 的校驗邏輯,將自動化檢核落實於日常開發流程。
本篇文章將帶你實作以下內容:
- 不使用 Gitmoji 的提交校驗:延續前一篇的 配置,透過 @commitlint/config-conventional 校驗提交訊息。
- 使用 Gitmoji 的提交校驗:加入 commitlint-config-gitmoji 與 commitlint-config-cz,支援帶有 Emoji 的訊息格式。
- 整合 Husky:將 Commitlint 校驗嵌入 Git Hooks,阻止不符合規範的提交。
提交訊息校驗工具: Commitlint
Commitlint 是一個專門用來檢查提交訊息格式的工具,能根據預設規範或自訂規則檢查每一筆提交訊息是否合格。它的核心功能包括:
- 校驗提交訊息格式:確保每次提交的訊息都符合既定規範,例如 Conventional Commits 或自訂的 Gitmoji 規範。
- 即時阻止不合規提交:透過與 Git Hooks 的整合(如搭配 Husky),在提交階段自動執行校驗邏輯,避免錯誤訊息進入版本控制歷史。
- 高度可擴展性:支援多種現成的規範配置,例如 @commitlint/config-conventional、commitlint-config-gitmoji,也可自定義檢核規則。
舉例來說,以下這樣的提交訊息格式符合 Conventional Commits 的規範:
feat(api): add new endpoint for user authentication
但若提交訊息不符合規範,例如這樣:
updated something
Commitlint 會立即提示錯誤,並阻止提交,確保不規範的訊息不會進入版本控制歷史。