Git Flow · Master Branch

Master 是一條
永不出軌
的火車

火車可以上下車,但軌道不能亂。Master 也一樣——任何人的程式碼都要透過正確的入口才能上車。

01 — 起:現在的狀況

大家直接
跳上火車

沒有月台,沒有驗票,任何人在任何地方都可以直接跳上 master。這列火車遲早會出軌。

a3f92 fix: 修正樣式
b81d4 update: 調整邏輯 💥
c99a0 feat: 新增功能
d12b7 refactor: 整理結構
e45f2 fix: 修正計算 💥
f78c1 update: 更新設定

↑ 所有人直推 master,壞的 commit 混在裡面,找不到也很難移除

02 — 承轉:換個角度想

火車有月台
才能安全上下車

現實中的火車,乘客要在月台等候、驗票、確認安全才能上車。 程式碼也一樣——PR 就是那個月台,讓每一段程式碼在進入 master 之前都經過確認。

v1.0
v1.1
v2.0
v2.1
PR merge ✓
直推 ✗

Master 是主軌道,永遠往前跑。每一站(版本)都是一個穩定的里程碑,中間不能有人亂插隊。

03 — 轉:Master 的三條規則

上這列車
需要三個條件

🚉
只能透過 PR 上車

不能直推 master。所有程式碼必須先開 PR,走過月台才能上車。用 Branch Protection 強制執行。

🎫
要有人驗票才能進站

PR 至少要一個人 Approve 才能 merge。不是不信任,是讓每段程式碼都有人確認過。

🔒
出問題可以精準退票

每個 PR 是完整的單位。有問題直接 revert 那個 PR,不影響其他人的東西,乾淨俐落。

04 — 合:Git Flow 的全貌

每條 Branch
都有自己的任務

Master 不是唯一的軌道。Git Flow 讓每種工作都有對應的 branch,各走各的,最後才匯入 master。

master
永遠穩定,只收 PR
develop
開發整合的主線
feature/*
每個功能獨立開發
hotfix/*
緊急修復,直接進 master

讓 Master
永遠在軌道上

01
設 Branch Protection

GitHub Settings → Branches → 鎖定 master,強制只能 PR merge

02
建 PR Template

.github/pull_request_template.md 讓開 PR 有格式可依循

03
養成 Branch 習慣

每個功能開一條 feature branch,完成再開 PR,永遠不直推