Github Flow介紹

  • 69
  • 0
  • Git
  • 2025-03-14

GitHub Flow

GitHub Flow 流程介紹

GitHub Flow 是一種 簡單且快速 的 Git 分支管理方式,特別適合 CI/CD、自動化部署小型或持續交付的團隊

相較於 GitFlow:

  • 沒有 develop 分支,所有功能分支直接從 main 切出,並合併回 main
  • 沒有 releasehotfix 分支,所有變更都透過 Pull Request (PR) 合併到 main,然後透過 Tag 發布版本。
  • CI/CD 自動部署,通常 main 分支的變更會立即觸發部署。

特點:

  • 所有新功能、Bug 修復 都是從 main 建立分支,不使用 develop
  • 功能開發完畢後,會透過 PR 進行 Code Review

Github Flow步驟

# 確保main是最新的
git checkout main
git pull origin main
# 建立新功能分支
git checkout -b feature-login
git push -u origin feature-login
# 進行開發並提交代碼
git add .
git commit -m "feat: 新增登入功能"
git push origin feature-login

開發中的時候要更新分支

git checkout main
git pull origin main
git merge feature-login  # 確保手動合併前是最新的

在開發過程遇到衝突

一、處理衝突,解決衝突

二、先放棄merge  先commit一版你的程式(合併前),在本機commit一版之後再清除你的程式(因為commit可以知道你上一版改了那些程式),把Develop分支合併進來,處理完衝突之後,再提交一版,再透過歷史紀錄,自己開發的併入到自己新版的develop分支

三、先從develop開新的分支例如你的分支是feat-001那就多開一個feat-001-1取到develop版本程式,再把feat-001程式和develop差異,再用feat-001-1的develop內容合併。

建立 Pull Request (PR)

在 GitHub 建立 PR

  1. 切換到 GitHub 倉庫
  2. 建立 Pull Request (PR)
    • feature-loginmain
  3. 請求 Code Review
  4. 通過 Review 後合併

合併 PR

合併 PR 後,刪除分支

git checkout main
git pull origin main
git branch -d feature-login
git push origin --delete feature-login

發布版本(可選)

如果這次變更需要一個正式版本號:

git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

GitHub Flow 總結

階段Git 操作GitHub 操作
功能開發git checkout -b feature-name建立 PR,合併 feature-namemain
Bug 修復git checkout -b bugfix-name建立 PR,合併 bugfix-namemain
合併變更git merge feature-nameCode Review 後合併 PR
刪除分支git branch -d feature-nameGitHub 會自動提示刪除已合併的分支
版本發布git tag v1.0.0推送 Tag 來觸發 CI/CD

這樣的 GitHub Flow 簡單、快速、適合 CI/CD 自動化部署的開發模式 

元哥的筆記