GitFlow詳解教程

從svn遷移到git了 , 補充一下git的知識和Git Flow在團隊中的應用

Git主要優點有

  1. 分佈式存儲 , 本地倉庫包含了遠程倉庫的所有內容 . 安全性高 , 遠程倉庫文件丟失了也不怕
  2. 優秀的分支模型 , 創建/合併分支非常的方便
  3. 方便快速 , 由於代碼本地都有存儲 , 所以從遠程拉取和分支合併時都非常快捷

當分支過多時 , 如何管理這些分支呢 ? 我們團隊採用了Git Flow的模式

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 工作流程圖

 不喜歡命令行的同學 , 這裏有完美支持Git Flow的圖形化工具 - SourceTree(支持中文簡體)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章