原文連結:GitFlow詳解教程
在小公司待久了,單兵作戰習慣了,最近找工找,在招聘資訊上看到了”GitFlow”這個詞,之前也一直用git,不過從沒具體深究過具體流程,畢竟單兵作戰,怎麼爽怎麼來。
但是看了這個GitFlow流程之後,感覺學習還是有必要的,以後自己的個人專案也可以用這個標準來給自己的程式碼做版本控制。
master
主分支 , 產品的功能全部實現後 , 最終在master分支對外發布
該分支為只讀唯一分支 , 只能從其他分支(release/hotfix)合併 , 不能在此分支修改
另外所有在master分支的推送應該打標籤做記錄,方便追溯
例如release合併到master , 或hotfix合併到master
develop
主開發分支 , 基於master分支克隆
包含所有要釋出到下一個release的程式碼
該分支為只讀唯一分支 , 只能從其他分支合併
feature功能分支完成 , 合併到develop(不推送)
develop拉取release分支 , 提測
release/hotfix 分支上線完畢 , 合併到develop並推送
feature
功能開發分支 , 基於develop分支克隆 , 主要用於新需求新功能的開發
功能開發完畢後合到develop分支(未正式上線之前不推送到遠端中央倉庫!!!)
feature分支可同時存在多個 , 用於團隊中多個功能同時開發 , 屬於臨時分支 , 功能完成後可選刪除
release
測試分支 , 基於feature分支合併到develop之後 , 從develop分支克隆
主要用於提交給測試人員進行功能測試 , 測試過程中發現的BUG在本分支進行修復 , 修復完成上線後合併到develop/master分支並推送(完成功能) , 打Tag
屬於臨時分支 , 功能上線後可選刪除
hotfix
補丁分支 , 基於master分支克隆 , 主要用於對線上的版本進行BUG修復
修復完畢後合併到develop/master分支並推送 , 打Tag
屬於臨時分支 , 補丁修復上線後可選刪除
所有hotfix分支的修改會進入到下一個release
主要工作流程
1 . 初始化專案為gitflow , 預設建立master分支 , 然後從master拉取第一個develop分支
2 . 從develop拉取feature分支進行編碼開發(多個開發人員拉取多個feature同時進行並行開發 , 互不影響)
3 . feature分支完成後 , 合併到develop(不推送 , feature功能完成還未提測 , 推送後會影響其他功能分支的開發)
合併feature到develop , 可以選擇刪除當前feature , 也可以不刪除 . 但當前feature就不可更改了 , 必須從release分支繼續編碼修改
4 . 從develop拉取release分支進行提測 , 提測過程中在release分支上修改BUG
5 . release分支上線後 , 合併release分支到develop/master並推送
合併之後 , 可選刪除當前release分支 , 若不刪除 , 則當前release不可修改 . 線上有問題也必須從master拉取hotfix分支進行修改
6 . 上線之後若發現線上BUG , 從master拉取hotfix進行BUG修改
7 . hotfix透過測試上線後 , 合併hotfix分支到develop/master並推送
合併之後 , 可選刪除當前hostfix , 若不刪除 , 則當前hotfix不可修改 , 若補丁未修復 , 需要從master拉取新的hotfix繼續修改
8 . 當進行一個feature時 , 若develop分支有變動 , 如其他開發人員完成功能並上線 , 則需要將完成的功能合併到自己分支上
即合併develop到當前feature分支
9 . 當進行一個release分支時 , 若develop分支有變動 , 如其他開發人員完成功能並上線 , 則需要將完成的功能合併到自己分支上
即合併develop到當前release分支 (!!! 因為當前release分支透過測試後會釋出到線上 , 如果不合並最新的develop分支 , 就會發生丟程式碼的情況)
引自大神的Git Flow 工作流程圖
本作品採用《CC 協議》,轉載必須註明作者和本文連結