Git Flow
期初使用 Git 多人開發時候,常因為沒定義規則,遇到 Commit 集中一堆會造成後續維護很大困擾。因此於 2010年提出一套流程 【Git Flow】,而這套流程廣泛被應用。
五種分支
Git Flow 使用主分支(master)和開發分支(develop)以及支援分支(feature)、修復分支(hotfix)、發布分支(release)分支類型,以適應不同的開發場景和需求。
主要 Branch
通常會用來給 DevOps 或是程式碼集中點,不會輕易刪除掉 Branch 。
- 正式環境 (Master) : 代表著穩定的產品版本,只會從發布分支或熱修分支合併過來。
- 開發環境 (Develop): 代表著正在開發的下一個版本,所有的開發工作都在這個分支上進行。
次要 Branch
- 功能分支(feature):代表著新功能的開發分支,通常是由開發分支分出來的,完成後再合併回開發分支。
- 修復分支(hotfix):代表著緊急修復的分支,通常是由主分支分出來的,完成後再合併回主分支和開發分支。
- 發布分支(release):代表著發布準備的分支,通常是由開發分支分出來的,完成後再合併回主分支和開發分支。
分支運作方式
Master / Develop 分支
當中 Master 與 Develop 會有一定的關聯性,必須要與 Develop 、Master 維持上下版本關係,才能有效達到效果。
如果過程中遇到Master 更新有 Bug 其實相當危險,所以會需要使用到 release 分支。
發布分支 release
作用是在更新到 Master 前,需要建立一版到 Release 進行測試,可以達到版本號、控管作用。
整體運作模式
功能分支(feature) 使用情境會是因”需求”而需要加入到 Develop 。修復分支(hotfix)則情境會是功能Bug 需要修繕需要更新雙方分支達到同步修繕效果。
圖片中有標示 (1)、(2)是指雙方分支需要同步過去。留意是 release 不能直接把它當作測試區使用,因為他作用是作為 Develop 進版時測試環境,並非測試區。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 John Conte!
評論
DisqusGitalk