Git - 分支工作流



根據分支的使用方式,可以將它們分成兩大類。

  • 長期分支

  • 短期/主題分支

注意:這只是一個語義上的劃分。從技術上(以及實際上)講,分支只是一個分支,並且始終以相同的方式工作。

長期分支

Git 中的三方合併功能使分支合併隨著時間的推移變得更加容易。這些分支在更高層級上使用,獨立於單個功能或錯誤修復開發。

開發人員經常維護多個用於不同開發階段的長期分支。這包括

  • 一個包含可靠程式碼並準備好釋出到生產環境的master分支。

  • 一個developnext分支,它將來自臨時分支的可靠功能整合到持續測試和開發中。

這些分支通常代表專案生命週期中的狀態,並且可以在專案中保留更長時間(甚至一直保留)。

git managing workflows

工作流程包括

  • 在短期主題分支上開發功能(例如,auth-module)。

  • 將經過測試和穩定的分支合併到nextdevelop分支中。

git branching workflows

分支在分層結構中充當穩定的孤島

  • 透過測試後,提交會從不穩定的分支遷移到更穩定的分支。

  • 一些專案使用其他分支(例如proposed updates(pu))來整合不太可靠的功能。

  • 大型或複雜的專案受益於管理眾多長期分支,因為它可以保持穩定性和控制功能整合。

主題分支

每次開始處理新功能或錯誤修復時,都應該為此主題建立一個新分支。此類分支對於任何規模的專案都很有用,因為它們充當特定任務或功能的臨時單元。

與傳統的版本控制系統不同,Git 的效率使得在開發過程中可以頻繁建立、修改、合併和刪除分支。

  • 分支透過隔離工作來允許不同的發展,而不會影響主源。

  • Git 高效的分支模型能夠快速執行分支操作,減少開銷,並與各種開發工作流程(如 GitHub Flow 和 Gitflow)無縫整合。

  • 之前討論中使用的分支(例如auth-modulebugfix)在合併到主分支後被刪除。

  • 此方法將工作劃分為特定於主題的分支,並能夠快速更改上下文。

  • 它簡化了更改審查並提高了對更改如何影響程式碼庫的理解。

下圖對此進行了說明

在從 master 分支開始後,開發人員會分支出去以處理特定任務(如task A)。

他們可能會建立類似於taskA-v2的分支來測試不同的方法。

git branching workflows

通常會返回到 master 分支並在那裡完成更多工作。

此外,開發人員會建立實驗性分支,如exploratory

此過程會生成詳細描述每個分支的歷史記錄和用途的提交歷史記錄。

git branching workflows

上圖說明了分支過程,並觀察到以下幾點

  • 經過評估,發現taskA-v2是最佳選擇,並且根據同事的反饋,exploratory被證明出乎意料地有用。

  • 可以安全地放棄原始的taskA分支以及提交 C5 和 C6。

  • Exploratory 和taskA-v2可以輕鬆地整合到主分支中。

  • 這種靈活的策略確保有效地處理修改,無論其時間順序如何。

廣告