主幹式開發(Trunk Based Development)

Git 進階

Amanda Crawford-Adamo

Software and Data Engineer

什麼是主幹式開發?

  • 版本控制分支的 CI/CD 模型
  • 開發者不再推送到獨立的發行分支
  • 從短生命週期分支合併到 main
  • 小幅且頻繁的更新

主分支提交圖,將分支視為發行主幹

Git 進階

主幹式開發的核心原則

  1. 經常提交到 main
  2. 功能分支壽命短(< 1 天)
  3. 持續整合
  4. 以功能旗標管理未完成工作

主幹式流程示意。短生命週期分支在合併到 main 時使用功能旗標切換。

Git 進階

TBD 中的功能旗標(Feature Flag)

  • 管理未完成的功能
  • 不影響使用者
  • 功能逐步釋出

功能旗標程式碼範例

  if feature_flag_enabled('new_feature'):
      # New feature code
  else:
      # Old feature code
Git 進階

TBD 中的持續整合

  • 提交到 main 會觸發自動建置「與」測試
  • 降低維護成本、加快發佈
  • 產品更可靠、穩定
  • 確保程式碼安全並符合法規與業界標準
  • 維持程式碼品質、降低錯誤風險
Git 進階

TBD 的優點與挑戰

優點:

  • 減少合併衝突
  • 縮短發佈週期
  • 提升程式碼品質
  • 強化團隊協作

挑戰:

  • 需要團隊自律
  • 需有健全測試
  • 前期學習曲線
  • 管理未完成功能
Git 進階

最佳實務

  1. 小變更、勤提交
  2. 自動化測試與部署
  3. 用功能旗標處理未完成工作
  4. 定期進行程式碼審查
  5. 部署後持續監控
Git 進階

一起來練習吧!

Git 進階

Preparing Video For Download...