Conventional Commits - 約定式提交

Conventional Commits - 約定式提交

·

1 min read

參考資料:

英文 - https://www.conventionalcommits.org/en/v1.0.0/

中文 - https://www.conventionalcommits.org/zh-hant/v1.0.0/

格式:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

主要組件

  1. type(必填)
    表示提交的類型:

    • feat: 新功能

    • fix: 修復問題

    • docs: 文件更新

    • style: 格式(非代碼邏輯的變更,如空格、格式化)

    • refactor: 重構(既不是新增功能也不是修復問題)

    • test: 增加測試

    • chore: 更改建置工具或其他雜項維護

    • perf: 性能優化

    • ci: 持續整合相關變更

  2. scope(可選)
    說明變更的影響範圍(如模組名稱、功能)。

  3. description(必填)
    簡短描述變更內容。

  4. body(可選)
    更詳細的變更描述。

  5. footer(可選)

    • 通常用於關閉 Issue(例如 Closes #123)。

    • 或者寫明破壞性變更(如 BREAKING CHANGE: 描述破壞性變更)。

範例:

  1. 新增功能
git commit -m "feat(auth): add login functionality"
  1. 修復問題
git commit -m "fix(api): correct response format for user endpoint"
  1. 文件更新
git commit -m "docs(readme): update installation guide"
  1. 性能優化
git commit -m "perf(image): optimize image loading for faster page speed"
  1. 重構代碼
git commit -m "refactor(profile): simplify profile data fetching logic"
  1. 破壞性變更
git commit -m "feat(router): introduce new routing system
BREAKING CHANGE: the old routing system is deprecated"
  1. 關閉 Issue
git commit -m "fix(login): resolve login timeout issue
Closes #123"

完整提交範例

git commit -m "feat(cart): add ability to remove items from cart

This feature allows users to remove individual items from their cart.
It also updates the total price dynamically.

Closes #456"