
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補程式操作
- Git - Diff 操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - 恢復
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - Amend
- Git 在伺服器上
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 啞 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流
- Git - 為專案做貢獻
- Git - 維護專案
- 自定義 Git
- Git - 配置
- Git - 鉤子
- Git - 屬性
- Git - Init
- Git - Commit
Git - 分支工作流
根據分支的使用方式,可以將它們分成兩大類。
長期分支
短期/主題分支
注意:這只是一個語義上的劃分。從技術上(以及實際上)講,分支只是一個分支,並且始終以相同的方式工作。
長期分支
Git 中的三方合併功能使分支合併隨著時間的推移變得更加容易。這些分支在更高層級上使用,獨立於單個功能或錯誤修復開發。
開發人員經常維護多個用於不同開發階段的長期分支。這包括
一個包含可靠程式碼並準備好釋出到生產環境的master分支。
一個develop或next分支,它將來自臨時分支的可靠功能整合到持續測試和開發中。
這些分支通常代表專案生命週期中的狀態,並且可以在專案中保留更長時間(甚至一直保留)。

工作流程包括
在短期主題分支上開發功能(例如,auth-module)。
將經過測試和穩定的分支合併到next或develop分支中。

分支在分層結構中充當穩定的孤島。
透過測試後,提交會從不穩定的分支遷移到更穩定的分支。
一些專案使用其他分支(例如proposed updates(pu))來整合不太可靠的功能。
大型或複雜的專案受益於管理眾多長期分支,因為它可以保持穩定性和控制功能整合。
主題分支
每次開始處理新功能或錯誤修復時,都應該為此主題建立一個新分支。此類分支對於任何規模的專案都很有用,因為它們充當特定任務或功能的臨時單元。
與傳統的版本控制系統不同,Git 的效率使得在開發過程中可以頻繁建立、修改、合併和刪除分支。
分支透過隔離工作來允許不同的發展,而不會影響主源。
Git 高效的分支模型能夠快速執行分支操作,減少開銷,並與各種開發工作流程(如 GitHub Flow 和 Gitflow)無縫整合。
之前討論中使用的分支(例如auth-module和bugfix)在合併到主分支後被刪除。
此方法將工作劃分為特定於主題的分支,並能夠快速更改上下文。
它簡化了更改審查並提高了對更改如何影響程式碼庫的理解。
下圖對此進行了說明
在從 master 分支開始後,開發人員會分支出去以處理特定任務(如task A)。
他們可能會建立類似於taskA-v2的分支來測試不同的方法。

通常會返回到 master 分支並在那裡完成更多工作。
此外,開發人員會建立實驗性分支,如exploratory。
此過程會生成詳細描述每個分支的歷史記錄和用途的提交歷史記錄。

上圖說明了分支過程,並觀察到以下幾點
經過評估,發現taskA-v2是最佳選擇,並且根據同事的反饋,exploratory被證明出乎意料地有用。
可以安全地放棄原始的taskA分支以及提交 C5 和 C6。
Exploratory 和taskA-v2可以輕鬆地整合到主分支中。
這種靈活的策略確保有效地處理修改,無論其時間順序如何。