gitflow工作流是一種依賴於git版本管理工具,按特定規範對專案開發、測試、上線流程進行管理的工作方式。它是一種為實現規範化管理的約定,它明確了各個分支的意義,使整個團隊的分工協作更加和諧明晰。
一、gitflow工作流約定使用的分支簡介
【master】專案的核心分支,也是最終對外發布的分支,唯一且穩定。僅提供可讀,不可在該分支上直接修改**。
【develop】專案的開發主幹分支,唯一。僅提供可讀,不可在該分支上直接修改**。新功能的開發需從該分支拉取新的分支展開。develop分支應該包含專案完整的全部歷史記錄。
【featrue】專案的需求開發分支,可多個,從develop分支或其他featrue分支拉取。程式設計師的多人分工協作即通過featrue來實現,是**具體實現的一線程式設計師接觸最多的分支。需求開發完成後,要合併回develop分支。
【release】預釋出分支,通常被叫做測試分支,主要用於開發階段的測試及bug修復。當feature分支開發完畢後會合併回develop分支,然後再從develop分支拉取release分支提測。測試並修復後的release分支要合併回develop分支以及master分支,並打上合適的tag標記(包含必要的releasenote)。
【hotfix】緊急線上修復分支,即當對外發布的master分支出現重大bug,影響線上使用時,從master分支拉取hotfix分支進行緊急修復。修復後的hotfix分支要合併回master分支和develop分支。
二、gitflow工作流流程圖
下面,以新專案開發或舊專案轉gitflow模式的場景來介紹gitflow工作流的運作。
首先,完成**倉庫的初始化,將新專案搭建起框架後的工程**或要轉gitflow的專案**上傳至git**倉庫。專案負責人克隆**倉庫到本地形成master分支,並拉取develop分支(步驟①)推送至伺服器。一般的實際場景,開發團隊中只有專案負責人有許可權操作master分支,拉取develop分支,並將develop分支的**合併到master分支中。
然後,開發團隊中的其他人克隆**倉庫的develop分支到本地,形成全體成員統一的唯一的develop分支軌跡。之後,按照需求及成員各自的分工,各個成員可以從develop分支拉取出各自的featrue分支(步驟②)進行獨立的開發;若涉及到多人合作開發同一分支,拉取的分支要及時推送至伺服器,便於各成員共享。
當各成員完成各自的功能開發後,需將完成後的**提交到featrue分支,然後合併到develop分支(步驟③)。**合併後,featrue分支可以不再保留。
功能累積足夠且穩定或到達約定的提測週期時,專案負責人應當從develop分支拉取出release分支(步驟④),打包提交相應的版本給測試人員進行部署測試,測試中提交的bug全部在該release分支完成修改。
測試結束並完成bug修復後,release分支應該合併回develop分支和master分支(步驟⑤),**合併後,release分支可以不再保留。合併後的master分支,應由專案負責人及時推送到**倉庫(步驟⑥)。同時全體成員要及時同步自己develop分支。
有上線需求時,直接從master分支打包提交應用版本進行部署。當線上版本出現重大bug,專案負責人需從master分支拉取hotfix分支(步驟⑦),進行線上的緊急修復。
最後,修復後的hotfix分支要合併回develop分支和master分支(步驟⑧)。並推送到**倉庫(步驟⑨)。
三、開發分支內部開發者們的合作模式
在gitflow工作流中,此處的公共伺服器可以理解為develop分支,主開發者掌握featrue分支的讀寫許可權,其他開發者拉取副本後,各自獨立開發,完成後將更新的patch提交給主開發者。最終由主開發者統一完成featrue分支的提交與合併。
1、2、
3、4、
GitFlow工作流常用操作流程
cd home timerhunter workspace git clone https x localhost 8443 r valve v5 lora.git 切換到master分支 git checkout master 基於master分支克隆develop分支,並在克隆完畢後直接跳轉到d...
GitFlow工作流常用操作流程
1.1 master分支 主分支,產品的功能全部實現後,最終在master分支對外發布。1.2 develop分支 開發分支,基於master分支克隆,產品的編碼工作在此分支進行。1.3 release分支 測試分支,基於delevop分支克隆,產品編碼工作完成後,釋出到本分支測試,測試過程中發現的...
Git工作流指南 Gitflow工作流
git workflows gitflow cycle 這節介紹的gitflow工作流借鑑自在nvie的vincent driessen。gitflow工作流定義了一個圍繞專案釋出的嚴格分支模型。雖然比功能分支工作流複雜幾分,但提供了用於一個健壯的用於管理大型專案的框架。gitflow工作流沒有用超...