跳至主要内容

Gitmoji x Conventional Commit 工作流 (三) - 使用 commit-and-tag-version 自動化生成 CHANGELOG.md

· 閱讀時間約 15 分鐘
Bosh
Software Engineer

變更日誌的意義與重要性

變更日誌是什麼?

在軟體專案中,變更日誌(Change Log) 是一份用來記錄專案功能變更、問題修復、優化內容的重要「歷史日記」。這份日誌的對象通常是開發者、測試人員。它可以幫助專案參與者快速掌握專案歷史,甚至在需要版本回滾時節省大量時間。

變更日誌最主要的目的是為了讓大家能「看懂版本變化」。它有幾個很實用的好處:

  1. 讓專案更透明,無論是團隊成員還是用戶,都能快速知道每次更新改了些什麼。
  2. 提高團隊效率,讓團隊成員快速理解改動,避免重複查詢。
  3. 輔助問題追蹤與版本回滾

Gitmoji x Conventional Commit 工作流 (二) - 使用 Commitlint + Husky 校驗提交格式

· 閱讀時間約 10 分鐘
Bosh
Software Engineer

前言

在上一篇文章中,我們介紹了如何透過 CommitizenGitmoji 規範化提交訊息。但規範的建立並不保證會被嚴格執行,許多團隊仍可能面臨這樣的情況:

「提交訊息格式看起來很簡單,但實際操作時,不是漏寫了類型,就是格式寫錯了。」

這種情況下,提交訊息的規範就形同虛設。因此,若要確保提交訊息始終符合規範,勢必得設立一道自動化檢核機制來攔截不合格的提交。

這正是 Commitlint 發揮作用的地方!它專門校驗提交訊息是否符合規範,無論是 Conventional Commits 還是 Gitmoji,都可透過自定義配置嚴格檢查,避免不合格的提交進入版本控制歷史。當然,工具的強大功能需要在正確的時間觸發才能發揮作用,搭配 Husky,我們能利用 Git hooks 在提交前自動執行 Commitlint 的校驗邏輯,將自動化檢核落實於日常開發流程。

本篇文章將帶你實作以下內容:

  1. 不使用 Gitmoji 的提交校驗:延續前一篇的配置,透過 @commitlint/config-conventional 校驗提交訊息。
  2. 使用 Gitmoji 的提交校驗:加入 commitlint-config-gitmojicommitlint-config-cz,支援帶有 Emoji 的訊息格式。
  3. 整合 Husky:將 Commitlint 校驗嵌入 Git Hooks,阻止不符合規範的提交。