淺談gitflow

之前文章對git的日常操作做了簡單的總結(jié),本篇主要對gitflow進行說明和總結(jié)。

git日常的基本操作

Git

  • 分布式的版本管理, 本地倉庫包含了遠程倉庫的所有內(nèi)容 . 安全性高 , 遠程倉庫文件丟失了也不怕
  • 優(yōu)秀的分支模型 , 創(chuàng)建/合并分支非常的方便
  • git是開源的,它強調(diào)個體,并且對于公共服務器壓力不會太大,大小項目均可管理

GitFlow的常用分支管理

  1. master
  • 主分支 , 產(chǎn)品的功能全部實現(xiàn)后 , 最終在master分支對外發(fā)布
  • 該分支為只讀唯一分支 , 只能從其他分支(release/hotfix)合并 , 不能在此分支修改
  • 另外所有在master分支的推送應該打標簽做記錄,方便追溯
  • 例如release合并到master , 或hotfix合并到master
  1. develop
  • 主開發(fā)分支 , 基于master分支克隆
  • 包含所有要發(fā)布到下一個release的代碼
  • 該分支為只讀唯一分支 , 只能從其他分支合并
  • feature功能分支完成 , 合并到develop(不推送)
  • develop拉取release分支 , 提測
  • release/hotfix 分支上線完畢 , 合并到develop并推送
    3.feature
    功能開發(fā)分支 , 基于develop分支克隆 , 主要用于新需求新功能的開發(fā)
    功能開發(fā)完畢后合到develop分支(未正式上線之前不推送到遠程中央倉庫!!!)
    feature分支可同時存在多個 , 用于團隊中多個功能同時開發(fā) , 屬于臨時分支 , 功能完成后可選刪除
    release
    測試分支 , 基于feature分支合并到develop之后 , 從develop分支克隆
    主要用于提交給測試人員進行功能測試 , 測試過程中發(fā)現(xiàn)的BUG在本分支進行修復 , 修復完成上線后合并到develop/master分支并推送(完成功能) , 打Tag
    屬于臨時分支 , 功能上線后可選刪除
    hotfix
    補丁分支 , 基于master分支克隆 , 主要用于對線上的版本進行BUG修復
    修復完畢后合并到develop/master分支并推送 , 打Tag
    屬于臨時分支 , 補丁修復上線后可選刪除
    所有hotfix分支的修改會進入到下一個release
    主要工作流程
    1 . 初始化項目為gitflow , 默認創(chuàng)建master分支 , 然后從master拉取第一個develop分支
    2 . 從develop拉取feature分支進行編碼開發(fā)(多個開發(fā)人員拉取多個feature同時進行并行開發(fā) , 互不影響)

3 . feature分支完成后 , 合并到develop(不推送 , feature功能完成還未提測 , 推送后會影響其他功能分支的開發(fā))
合并feature到develop , 可以選擇刪除當前feature , 也可以不刪除 . 但當前feature就不可更改了 , 必須從release分支繼續(xù)編碼修改

4 . 從develop拉取release分支進行提測 , 提測過程中在release分支上修改BUG

5 . release分支上線后 , 合并release分支到develop/master并推送
合并之后 , 可選刪除當前release分支 , 若不刪除 , 則當前release不可修改 . 線上有問題也必須從master拉取hotfix分支進行修改

6 . 上線之后若發(fā)現(xiàn)線上BUG , 從master拉取hotfix進行BUG修改

7 . hotfix通過測試上線后 , 合并hotfix分支到develop/master并推送
合并之后 , 可選刪除當前hostfix , 若不刪除 , 則當前hotfix不可修改 , 若補丁未修復 , 需要從master拉取新的hotfix繼續(xù)修改

8 . 當進行一個feature時 , 若develop分支有變動 , 如其他開發(fā)人員完成功能并上線 , 則需要將完成的功能合并到自己分支上
即合并develop到當前feature分支
9 . 當進行一個release分支時 , 若develop分支有變動 , 如其他開發(fā)人員完成功能并上線 , 則需要將完成的功能合并到自己分支上

即合并develop到當前release分支 (!!! 因為當前release分支通過測試后會發(fā)布到線上 , 如果不合并最新的develop分支 , 就會發(fā)生丟代碼的情況)
20180803135443287.png

不喜歡命令行的同學 , 這里有完美支持Git Flow的圖形化工具 - SourceTree(支持中文簡體)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Git分支管理 master:主分支,當前分支上的代碼隨時可以直接發(fā)布,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,962評論 5 33
  • 原文推薦: A successful Git branching model 這個文章講的是Git分支模型的原理及...
    SonyaBaby閱讀 1,594評論 0 0
  • 網(wǎng)上關于Git-Flow的教程一大堆,哎呀,命令行太多記不住啊。還好有SourceTree,但是好像功能還挺多,不...
    Thresh0ld閱讀 15,338評論 2 37
  • Git 規(guī)范 所有使用了本規(guī)范的項目,必須嚴格規(guī)范操作,否則不予以合并代碼、提測、打包上線等后續(xù)操作。 基本要求 ...
    zgsddzwj閱讀 14,275評論 1 14
  • 1 Git Flow介紹 我們都知道, 在 git 的分支功能相對 svn 確實方便許多,而且也非常推薦使用分支來...
    七寸知架構(gòu)閱讀 8,058評論 20 68

友情鏈接更多精彩內(nèi)容