Gitflow存在兩個記錄項目歷史的分支
- Master分支:存儲(官方的,正式的)項目發布歷史記錄的分支。
- develop分支:充當功能的集成分支。

Develop分支將包含項目的完整歷史記錄,而master將包含簡化版本。現在,其他開發人員應該克隆中央存儲庫,並為develop創建跟蹤分支。
⚠️:基於Master分支創建develop分支。
特性分支(feature branch)
每個新功能應駐留在其自己的(特性)分支中,可以將其推送到中央存儲庫以進行備份/協作。但是,特性(feature)分支不是基於master分支創建,而是將develop分支作為自己的父分支。功能完成后,它會重新合並到develop分支中,並刪除當前的feature分支。feature分支絕不能直接與master分支進行交互。

⚠️:通常我們基於最新的develop分支創建feature分支。
Release分支
一旦develop分支獲得了足夠的發布功能(或臨近預定的發布日期),你就需要基於develop分支創建release分支,創建此分支將開始下一個發行周期,因此此刻之后release分支不能添加任何新功能-除了錯誤修復,文檔生成以及其他面向發行版的任務的改動。一旦准備好發布,release分支將合並到master分支並用版本號標記。另外,應該將其合並回develop分支,因為release分支可能已經存在新的提交。

使用專用的分支進行發布可以讓我們在發布的同時,其他團隊可以繼續為下個發行版本開發新功能,而不影響此次發布。它還創建了明確定義的開發階段(例如,可以很容易地說:“本周我們正在為版本4.0做准備,並且可以在存儲庫的結構中實際看到它“)。
一旦release分支准備好發布,它將被合並到master和develop分支中,然后release分支將被刪除。重新合並到develop分支中很重要,因為關鍵更新可能已添加到release分支,並且新功能需要訪問這些更新。如果您的組織強調code review,那么這將是合並到develop的理想場景。
⚠️:release分支基於develop分支。
hotfix分支
維護或“hotfix”分支用於快速修補生產版本。hotfix分支與release分支和feature分支很像,只是hotfix分支是基於主版本而不是開發版本的。
hotfix是唯一應直接從master創建的分支
修復程序完成后,應將其合並到master和develop(或當前release分支)中,隨后刪除hotfix分支,並應使用更新的版本號(tag)標記master分支。

擁有專門的錯誤修復開發線,您的團隊可以在不中斷其余工作流程或不等待下一個發布周期的情況下解決問題。您可以將hotfix分支視為直接與master一起使用的臨時發行分支。
Gitflow的總體流程為:
- A
developbranch is created frommaster - A
releasebranch is created fromdevelop Featurebranches are created fromdevelop- When a
featureis complete it is merged into thedevelopbranch - When the
releasebranch is done it is merged intodevelopandmaster - If an issue in
masteris detected ahotfixbranch is created frommaster - Once the
hotfixis complete it is merged to bothdevelopandmaster

總結
本文介紹了gitflow的工作流程
關注筆者公眾號,推送各類原創/優質技術文章 ⬇️

