GitFlow 工作模式(詳解)

今天再學項目的過程中遇到使用gitflow模式管理代碼,因此進行學習并且發布關于gitflow的一些思考

Git與GitFlow模式

? ? ? ? 我們在寫代碼的時候通常會進行網上保存,無論是github還是gittee,都是一種基于git去保存代碼的形式,這樣保存代碼會十分的整潔并且丟失后還容易找回,但是,你會發現如下問題:

  1. ?版本管理不夠清晰?
    如果沒有良好的規范,master?分支可能包含未完成或不穩定的代碼。

  2. ?不適合多版本維護?
    缺乏?release?和?hotfix?分支,難以同時維護多個版本或快速修復生產問題。

  3. ?并行開發支持較弱?
    雖然支持功能分支,但沒有明確的集成分支(如?develop),可能導致集成混亂。

但是gitflow模式通過多種嚴格的代碼流程處理掉了這些問題,具有優勢,我們將通過此篇文章講解gitflow的模式是如何處理這些問題的

當然劣勢也有,請拉到文章底部查看

GitFlow工作模式

master分支

發布上線時,基于master打tag,基于tag進行發布,不允許在該分支上開發,始終保持該分支的穩定。

develop分支

開發階段使用的分支,提交到該分支代碼都是相對穩定的,不能直接基于此分支開發,如果開發新的功能,需要基于此分支創建新的分支進行開發功能,待功能開發、測試通過后合并到develop分支。

Feature分支

當你需要去開發新的功能的時候,需要創建feature分支,功能開發完后合并到Develop分支,禁止未開發完成的代碼合并到Develop分支

Release分支

當你的feature分支合并到develop分支之后,此時需要基于Develop分支創建Release分支,在Release分支中不再添加新的功能,只是做bug的修復,等測試完成bug全部修復之后,需要將Release分支合并到Master分支和Develop分支,并且基于Master打出版本的tag。

hotfix分支

如果發布到生成環境的版本出現bug,比如:生產環境的v1.0版本出現bug需要盡快修復,此時就需要基于master創建hotfix分支,并且基于hotfix分支修復bug,待bug修復完成后需要將代碼合并到master和develop分支。

基于以上流程,你就會能夠處理git流程的一些缺陷

gitFlow的優勢

  1. ?適合有明確發布周期的項目?
    GitFlow 對版本控制非常嚴格,適合需要定期發布、維護多個版本(如企業軟件、移動應用)的項目。

  2. ?版本管理清晰?
    master 分支始終代表可發布的穩定版本,develop 分支代表即將發布的版本,功能分支隔離開發,便于管理。

  3. ?并行開發支持好?
    多個功能可以同時在不同的功能分支上開發,互不干擾,提高團隊協作效率。

  4. ?熱修復機制完善?
    緊急問題可以通過熱修復分支快速修復并發布,同時不影響開發主線。

劣勢

  1. ?流程復雜,學習成本高?
    GitFlow 分支模型較為復雜,對新手不友好,團隊需要花時間學習和適應。

  2. ?不適合持續集成/持續交付(CI/CD)??
    GitFlow 的發布周期較長,分支較多,與現代 CI/CD 的快速迭代、頻繁發布的理念不太契合。

  3. ?合并沖突風險高?
    由于分支多,合并頻繁,容易產生合并沖突,尤其是在大型項目中。

  4. ?維護成本高?
    需要嚴格遵循流程,否則容易導致分支混亂,增加維護難度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86284.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Vue3】(三)vue3中的pinia狀態管理、組件通信

目錄 一、vue3的pinia 二、【props】傳參 三、【自定義事件】傳參 四、【mitt】傳參 五、【v-model】傳參(平常基本不寫) 六、【$attrs】傳參 七、【$refs和$parent】傳參 八、provide和inject 一、vue3的pinia 1、什么是pinia? pinia …

【DAY43】復習日

內容來自浙大疏錦行python打卡訓練營 浙大疏錦行 作業: kaggle找到一個圖像數據集,用cnn網絡進行訓練并且用grad-cam做可視化 進階:并拆分成多個文件

xtp+ctp 交易系統接口簡介

CTP(上海期貨交易所綜合交易平臺)和 XTP(中泰證券極速交易平臺)是中國金融市場中兩個重要的證券期貨交易系統,它們在定位、架構和應用場景上有顯著區別: 1. 開發主體與服務領域 維度CTPXTP開發公司上海期貨…

阿里云Alibaba Cloud安裝Docker與Docker compose【圖文教程】

個人記錄 進入控制臺,找到定時與自動化任務 進入‘安裝/卸載擴展程序’ 點擊‘安裝擴展程序’ 選擇docker社區版,點擊下一步與確定,等待一會 安裝成功 查詢版本 查詢docker sudo docker version查詢docker compose sudo docker compo…

非Root用戶啟動SSH服務經驗小結

各位看官,小子我先問個問題:是不是經常在容器里想開個SSH,卻發現自己不是root,處處碰壁?這是常態。多數容器鏡像精簡到連SSH服務都沒有,就算有,咱們普通用戶也沒權限啟動它。 今天小子就介紹一…

Windows開機自動啟動中間件

WinSW(Windows Service Wrapper 是一個開源的 Windows 服務包裝器,它可以幫助你將應用程序打包成系統服務,并實現開機自啟動的功能。 一、下載 WinSW 下載 WinSW-x64.exe v2.12.0 (?? 更多版本下載) 和 sample-minimal.xml 二、配置 WinS…

【CATIA的二次開發23】抽象對象Document涉及文檔激活控制的方法

在CATIA VBA開發中,Document對象是最核心、最基礎的對象之一。它代表了當前在CATIA會話中打開的一個文檔(文件)。 幾乎所有與文件操作、模型訪問相關的操作都始于獲取一個Document對象。Document對象包含多種方法和屬性,以下介紹Document對象方法和屬性 一、Document對象方…

基于多維視角的大模型提升認知醫療過程層次激勵編程分析

系統架構設計 #mermaid-svg-k3W5lvie1sP3T956 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-k3W5lvie1sP3T956 .error-icon{fill:#552222;}#mermaid-svg-k3W5lvie1sP3T956 .error-text{fill:#552222;stroke:#55222…

【評測】Qwen3-Embedding模型初體驗

回到目錄 【評測】Qwen3-Embedding模型初體驗 模型的介紹頁面 0.6B運行配置:筆記本i5-8265U,16G內存,無GPU核顯運行,win10操作系統 8B運行配置:AMD8700G,64G內存,4090D 24G顯存,ub…

MPLAB X IDE ?軟件安裝與卸載

1、下載MPLAB X IDE V6.25 MPLAB X IDE | Microchip Technology 正常選Windows,點擊Download,等待自動下載完成; MPLAB X IDE 一臺電腦上可以安裝多個版本; 2、安裝MPLAB X IDE V6.25 右鍵以管理員運行;next; 勾選 I a…

PLC入門【2】PLC的接線

02 PLC的接線 PLC 的品牌介紹,PLC的接線 1、PLC 大體分為歐式和日式 2、只要學會三菱的,整個日式的也差不多會了。 3、PLC 分為晶體管輸出和繼電器輸出。 4、PLC 接線都差不多的 我們主要是講這個三菱的 PLC, 三菱和臺達的 PLC,…

Hibernate Validator 數據驗證

Hibernate Validator不僅可以用于Controller層的參數驗證,還可以在Service層、Repository層或任何其他層中使用。 手動驗證 在任何地方都可以通過Validator接口手動觸發驗證: public class ManualValidationExample {public void validateObject(Obje…

【深度學習】表示學習:深度學習的數據解構與重構藝術

作者選擇了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰寫的《Deep Learning》(人工智能領域的經典教程,深度學習領域研究生必讀教材),開始深度學習領域學習,深入全面的理解深度學習的理論知識。 之前的文章參考下面的鏈接&#xf…

如何在PowerBI中使用Analyze in Excel

如何在PowerBI中使用Analyze in Excel 之前分享過如何使用DAXStudio將PowerBI與Excel連接 ,今天介紹另外一個工具,也可以實現同樣的功能,Analyze in Excel。 使用Analyze in Excel 第一步: 首先準備好一個PBIX文件&#xff0c…

AI應用工程師面試

技術基礎 簡述人工智能、機器學習和深度學習之間的關系。 人工智能是一個廣泛的概念,旨在讓機器能夠模擬人類的智能行為。機器學習是人工智能的一個子集,它專注于開發算法和模型,讓計算機能夠從數據中學習規律并進行預測。深度學習則是機器學習的一個分支,它利用深度神經網…

基于定制開發開源AI智能名片S2B2C商城小程序的首屏組件優化策略研究

摘要:在數字化轉型背景下,用戶對首屏交互效率的訴求日益提升。本文以"定制開發開源AI智能名片S2B2C商城小程序"為技術載體,結合用戶行為數據與認知心理學原理,提出首屏組件動態布局模型。通過分析搜索欄、掃碼入口、個人…

day50 隨機函數與廣播機制

目錄 一、隨機張量的生成 1.1 torch.randn() 函數 1.2 其他隨機函數 1.3 輸出維度測試 二、廣播機制 2.1 廣播機制的規則 2.2 加法的廣播機制 二維張量與一維向量相加 三維張量與二維張量相加 二維張量與標量相加 高維張量與低維張量相加 2.3 乘法的廣播機制 批量…

Java持久層技術對比:Hibernate、MyBatis與JPA的選擇與應用

目錄 簡介持久層技術概述Hibernate詳解MyBatis詳解JPA詳解技術選型對比最佳實踐與應用場景性能優化策略未來發展趨勢總結與建議 簡介 在Java企業級應用開發中,持久層(Persistence Layer)作為連接業務邏輯與數據存儲的橋梁,其技…

【2025CVPR】模型融合新范式:PLeaS算法詳解(基于排列與最小二乘的模型合并技術)

本文深入解析ICLR 2025頂會論文《PLeaS: Merging Models with Permutations and Least Squares》,揭示模型融合領域突破性進展. 一、問題背景:模型合并的核心挑戰 隨著開源模型的爆發式增長,如何高效合并多個專用模型成為關鍵挑戰。傳統方法存在三大痛點: ?初始化依賴?…

磁盤空間清道夫FolderSize 系列:可視化分析 + 重復文件識別,

各位電腦小能手們,今天來給大家嘮嘮Folder類軟件!這玩意兒主要是為了文件夾管理、監控、安全還有優化這些需求設計的,不同工具的功能各有側重。下面我就結合多個搜索結果,給大家分類介紹一下。 軟件下載地址安裝包 首先是文件夾空…