iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
Modern Web

Git 起來!每日一招學起來系列 第 30

Day 30:Git Flow — 團隊開發流程最佳實踐

  • 分享至 

  • xImage
  •  

前 29 天,我們學會了 Git 的各種指令、協作流程與進階技巧。

今天,我們要把這些技巧套入 Git Flow,建立一套適合團隊的標準開發流程,讓分支不再亂跑。


Git Flow 是什麼?

Git Flow 是 Vincent Driessen 提出的 分支管理模型,用於多人協作開發,核心理念:

  • main(或 master):穩定分支,隨時可釋出產品
  • develop:開發分支,所有 feature 最終合併到這裡
  • feature/:新功能分支,從 develop 分出
  • release/:準備釋出分支,從 develop 分出,完成測試後合併回 main 與 develop
  • hotfix/:緊急修復分支,從 main 分出

分支示意圖

https://ithelp.ithome.com.tw/upload/images/20251015/20178700BgZiyjxA23.png

想像成:main 是公司總經理,develop 是研發部,feature / release / hotfix 是不同小組,同時運作,專案才順利。


分支策略

分支 角色 使用方式
main 穩定分支 永遠保持穩定,只接收 release 或 hotfix 合併
develop 開發主線 所有功能分支最終合併到這裡
feature/ 功能分支 從 develop 分出,完成後合併回 develop
release/ 準備釋出 從 develop 分出,修 bug / 調整設定,完成後合併回 main & develop
hotfix/ 緊急修復 從 main 分出,修復完成後合併回 main & develop

Git Flow 實戰指令

初始化 develop 分支

git switch -c develop main
git push -u origin develop
  • -c:create,建立一個新分支並切換到該分支
  • develop:你要建立的新分支名稱
  • main:作為新分支的基礎分支(從 main 分出 develop)

建立 feature 分支

git switch develop
git switch -c feature/login
# 開發完成後
git add .
git commit -m "新增登入功能"
git switch develop
git merge --no-ff feature/login
git push origin develop

💡 Tip--no-ff 保留分支歷史,方便追蹤功能來源。


建立 release 分支

git switch develop
git switch -c release/1.0.0
# 修 bug 或調整版本號
git add .
git commit -m "Release 1.0.0"
git switch main
git merge --no-ff release/1.0.0
git tag -a v1.0.0 -m "版本 1.0.0"
git push origin main --tags
git switch develop
git merge --no-ff release/1.0.0

Hotfix 分支

git switch main
git switch -c hotfix/typo
# 修緊急 bug
git add .
git commit -m "修正 typo"
git switch main
git merge --no-ff hotfix/typo
git tag -a v1.0.1 -m "Hotfix 1.0.1"
git push origin main --tags
git switch develop
git merge --no-ff hotfix/typo

遠端協作建議

  • 每個分支都 push 到 origin,建立追蹤分支
  • 使用 Pull Request 或 Merge Request 進行審核
  • Develop 分支禁止直接 push main 的功能分支
  • Hotfix 分支直接釋出時,要同步回 develop

常見問題與解法

問題 原因 解法
merge 衝突 多人修改同檔案 git merge 時手動解決衝突
分支亂 沒依 Git Flow 命名規則 建立統一命名規範
push 錯遠端 遠端不存在 git push -u origin

小挑戰 💪

  1. 從 develop 建立 feature 分支 feature/dashboard
  2. 完成開發並 merge 回 develop
  3. 從 develop 建立 release 分支 release/1.1.0
  4. 模擬緊急 hotfix,建立 hotfix/urgent-fix
  5. 將 hotfix 合併回 main 和 develop,打上 tag
  6. 確認各分支歷史正確

小結

Git Flow 提供 標準化分支流程,讓多人協作更安全:

  • main:穩定
  • develop:開發主線
  • feature:獨立功能
  • release / hotfix:版本管理與緊急修復

搭配 Branch & Remote 進階技巧、PR / MR 或 --no-ff merge,即可實現安全、高效的團隊開發流程。

Git Flow + 遠端 + 多分支管理 = 專業團隊開發的基礎武器庫


上一篇
Day 29:Branch & Remote 進階 —— 地端與雲端的雙向連線術
系列文
Git 起來!每日一招學起來30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言