Git分支管理介紹

来源:https://www.cnblogs.com/lori/archive/2020/01/31/12246486.html
-Advertisement-
Play Games

分支管理 軟體的版本控制以及分支管理貫穿於整個軟體產品的生命周期,日常的項目管理對於開發團隊能否有節奏且順利的交付軟體也很重要。本分支管理和版本控制規範主要分為3個部分,即分支管理規範、版本號規範、需求與代碼關聯。其中,將闡述不同的分支管理模型,以及它們的優缺點和使用的場景;描述版本號控制方式——語 ...


分支管理

軟體的版本控制以及分支管理貫穿於整個軟體產品的生命周期,日常的項目管理對於開發團隊能否有節奏且順利的交付軟體也很重要。本分支管理和版本控制規範主要分為3個部分,即分支管理規範、版本號規範、需求與代碼關聯。其中,將闡述不同的分支管理模型,以及它們的優缺點和使用的場景;描述版本號控制方式——語義化版本;以及將需求與代碼管理的必要性等。
分支管理規範

目前比較流行的分支管理模型有三個,即GitFlow、GitLabFlow、GitHubFlow。下麵將介紹這三種分支模型的原理,使用場景和優缺點等。

GitFlow

GitFlow是最早誕生並得到廣泛應用的一種工作流程。

該模型中存在兩種長期分支:master和develop。master中存放對外發佈的版本,只有穩定的發佈版本才會合併到master中。develop用於日常開發,存放最新的開發版本。

也存在三種臨時分支:feature,hotfix,release。

feature分支是為了開發某個特定功能,從develop分支中切出,開發完成後合併到develop分支中。
hotfix分支是修複發佈後發現的Bug的分支,從master分支中切出,修補完成後再合併到master和develop分支。
release分支指發佈穩定版本前使用的預發佈分支,從develop分支中切出,預發佈完成後,合併到develop和master分支中。

優點:

feature分支使開發代碼隔離,可以獨立的完成開發、構建、測試
feature分支開發周期長於release時,可避免未完成的feature進入生產環境

缺點:

無法支持持續發佈。
過於複雜的分支管理,加重了開發者的負擔,使開發者不能專註開發。

GitHubFlow

GitHubFlow分支模型只存在一個master主分支,日常開發都合併至master,永遠保持其為最新的代碼且隨時可發佈的。

在需要添加或修改代碼時, 基於master創建分支,提交修改。
創建Pull Request,所有人討論和審查你的代碼。
然後部署到生產環境中進行驗證。
待驗證通過後合併到master分支中。

這個分支模型的優勢在於簡潔易理解,將master作為核心的分支,代碼更新持續集成至master上。根據目前收集到的反應來看,得到了更多的好評,認為GitHubFlow分支模型更加輕便快捷。

GitLabFlow

GitLabFlow是GitFlow和GitHubFlow的結合,它吸取了兩者的優點,既有適應不同開發環境的彈性,又有單一主分支的簡單和便利。

該模型採取上游優先的原則,即只存在一個master主分支,它是所以分支的上游。只有上游分支採納的變動才能應用到其他分支。

對於持續發佈的項目,建議在master之外再建立對應的環境分支,如預生產環境pre-production,生產環境production。

對於版本發佈的項目,建議基於master創建穩定版本對應的分支,如stable-1,stable-2。

分支命名規約
首碼 含義
master 主分支,可用的、穩定的、可直接發佈的版本
develop 開發主分支,最新的代碼分支
feature-** 功能開發分支
bugfix-** 未發佈bug修複分支
release-** 預發佈分支
hotfix-** 已發佈bug修複分支
提交命名規約

除了分支的名稱需要規範,提交的命名也同樣如此。

格式為:[操作類型]操作對象名稱,如[ADD]readme,代表增加了readme描述文件。

常見的操作類型有:

[IML] 實現正在開發的功能

[UPDATE] 更新或改善已經實現的功能

[FIX] 修複BUG

[REF] 重構一個功能,對功能重寫

[ADD] 添加實現新功能

[DEL] 刪除不需要的文件

版本號規範

版本格式:主版本號.次版本號.修訂號,版本號遞增規則如下:

1.主版本號:當你做了不相容的 API 修改。

2.次版本號:當你做了向下相容的功能性新增。

3.修訂號:當你做了向下相容的問題修正。

先行版本號及版本編譯信息可以加到“主版本號.次版本號.修訂號”的後面,作為延伸。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景樣式 • background-color 設置元素的背景顏色。• background-image 把圖像設置為背景。• background-position 設置背景圖像的起始位置。• background-attachment 背景圖像是否固定或者隨著頁面的其餘部分滾動。• backgr ...
  • width和height是指content內容的寬高 當width的值小於min-width時,則寬度為min-width 當width的值大於max-width時,則寬度為max-width min-width和max-width存在相容性問題,在IE6以下不支持 哪些元素可以設置寬高屬性 塊級元 ...
  • 1.簡單使用: 當input裡面的值發生變化的時候,就會自動把變化後的值,綁定到Vue對象上去了 <body> <div id="app"> <input v-model="name" />{{name}}<br /> <textarea v-model="t"></textarea>{{t}}<b ...
  • font-family屬性值:具體字體名或者字體集 如果是中文或者有單詞之間有空格,需要加雙引號 字體集: Serif (有裝飾線) Sans-serif (無裝飾線) Monospace Cursive Fantasy <!DOCTYPE html> <html lang="en"> <head> ...
  • 選擇器權值: 標簽選擇器:1 類選擇器和偽類選擇器:10 ID選擇器:100 通配符選擇器:0 行內樣式:1000 !important 在一定條件下,優先順序最高 常用的css樣式命名 頁面結構頁頭:header頁面主體:main頁尾:footer內容:content/container容器: co ...
  • function a(){} 和 var a = function(){}的區別: 學習做浮窗,看到別人的代碼里有: window.onresize = function(){ chroX = document.documentElement.clientWidth;//yemian整個的高寬 ch ...
  • 本章介紹UML建模元素 1:Stereotype-也被稱為類型、構造型 UML里的元素擴展,簡單來說其功能就是在已有的類型上添加一些標記,類似於打個戳,從而生成新的東西。 簡單的說加一句話來更加清楚準確描述這個類。 2:Actor(主角、參與者)-是在系統之外與系統交互的某人或某事物,在建模過程中處 ...
  • 萬變不離其宗,不管是Java還是C++,凡是面向對象的編程語言,在設計上,儘管表現形式可能有所不同,但是其實質和所需遵守的原則都是一致的。本文便是帶領讀者去深入理解設計模式中的六大原則,以期幫助讀者做出更好的設計。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...