☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
concept-arch 中級

Git 工作流:團隊怎麼協作?

Git Flow vs Trunk-Based

Git Flow

main ─────────────────────────────────── (正式版)
  ↕
develop ──┬──┬──┬──┬──┬──────────────── (開發版)
          │  │  │  │  │
feature/  │  │  │  │  │
login ────┘  │  │  │  │
feature/     │  │  │  │
cart ────────┘  │  │  │
release/       │  │  │
v1.0 ──────────┘  │  │
hotfix/           │  │
urgent ───────────┘  │
feature/             │
search ──────────────┘
適合:發版節奏固定、大型團隊
缺點:分支太多、合併複雜、容易衝突

Trunk-Based(主流推薦)

main ─┬─┬─┬─┬─┬─┬─┬─┬─ (每天都可部署)
      │ │ │ │ │ │ │ │
      小 小 小 小 小 小 小 小
      PR PR PR PR PR PR PR PR
適合:CI/CD 成熟、小型敏捷團隊
原則:分支生命短(< 1 天)、頻繁合併到 main
優點:衝突少、部署快、code review 範圍小

Rebase vs Merge

Merge:保留完整歷史
A─B─C─────F  (main)
     \   /
      D─E    (feature)
→ 多一個合併 commit(F),歷史有分岔

Rebase:線性歷史
A─B─C─D'─E'  (main)
→ feature 的 commit 被「重新播放」在 main 之後
→ 歷史乾淨,但改寫了 commit hash
Merge Rebase
歷史 保留分支記錄 線性乾淨
安全性 ✅ 不改寫歷史 ⚠️ 改寫 commit hash
適合 多人協作的 feature branch 個人 feature branch 整理
衝突 一次解決 可能要逐 commit 解決

金規:只 rebase 自己的 branch,不要 rebase 已經 push 的公共 branch。


Code Review 文化

好的 PR:
- 小(< 400 行)
- 一個 PR 做一件事
- 有清楚的描述(為什麼改、改了什麼)
- 自己先 review 一次

壞的 PR:
- 2000 行改動,看不完
- 標題寫「update」
- 混合了 feature + refactor + bug fix

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊