GitHub Flow
GitHub Flow 流程介紹
GitHub Flow 是一種 簡單且快速 的 Git 分支管理方式,特別適合 CI/CD、自動化部署 和 小型或持續交付的團隊。
相較於 GitFlow:
- 沒有
develop
分支,所有功能分支直接從main
切出,並合併回main
。 - 沒有
release
和hotfix
分支,所有變更都透過 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:
- 切換到 GitHub 倉庫
- 建立 Pull Request (PR)
feature-login
→main
- 請求 Code Review
- 通過 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-name → main |
Bug 修復 | git checkout -b bugfix-name | 建立 PR,合併 bugfix-name → main |
合併變更 | git merge feature-name | Code Review 後合併 PR |
刪除分支 | git branch -d feature-name | GitHub 會自動提示刪除已合併的分支 |
版本發布 | git tag v1.0.0 | 推送 Tag 來觸發 CI/CD |
這樣的 GitHub Flow 簡單、快速、適合 CI/CD 自動化部署的開發模式
元哥的筆記