Git多版本并行開發實踐

?本文目的:

實現多個項目同時進行的git多版本管理工作流。

? ? 名詞解釋:

?????????feature-XXXX:特性分支指CCS中一個項目或者一個迭代,在該分支上開發,完成后,合并,最后,刪除該分支,開發人員(xxxx可以自己根據該分支)develop?:開發分支,開發環境基于該分支構建,開發人員關注該分支,一個大融合分支,該分支體現了此時進行的所有項目的特性功能。test(release):測試分支,測試環境基于該分支構建,測試人員關注該分支,該分支包含即將上線的特性功能。hotfix:為了修復某個bug,從master分支上面分出來的。修復完成后,再merge到master分支以及其他分支master:生產環境穩定分支,生產環境基于該分支構建

目前現狀:

git.png

3、產生問題:

? ?從上圖可以看出 當前分支管理無法實現 多版本并行開發,是一個串行的工作流方式。

? 1、當某個迭代在develop分支完成生命周期即封板后,此時代碼進行到test分支,發現代碼有bug

? ? ? ?目前所見做法有 部分開發者直接在test分支修改代碼,develop分支不修改,等到上線后master反合;部分開發者在test修改后,develop同時改掉。

? 2、同時有 A、 B ?2個迭代, A迭代計劃先上線,B迭代計劃在A后面上線,只能A迭代生命周期進行到test才能釋放出develop分支給B迭代使用。

? 3、同時有 A、 B ?2個迭代, A迭代計劃先上線,B迭代計劃在A后面上線,突然接到通知B需要在A前面上線,此時A占據著測試環境,需要增加很大工作量回退代碼。

上述問題大大影響了開發效率,測試效率,也會產生代碼丟失的風險等。

解決方案

?解決方案-工作流圖:

? ? ? ??

git多版本.png

流程圖解釋:

??1、場景

????項目同時并行?:1、迭代33?;?2、迭代22開發?這2個項目;

?2準備

????從master拉出2個分支?feature-迭代33??2、feature-迭代22。

3開發自測聯調階段(feature->develop)

???3.1、??負責這2個項目的開發人員在各自這2個分支上開發。3.2、開發完成,想到環境上驗證自己開發東西是否ok或者和前端進行聯調。可以將各自分支上的代碼merge到develop分支,此時以develop分支部署開發環境,就具有了這2個項目的所有特性;3.3、如果開發環境驗證時發現存在bug,此時修改代碼請在各自的feature分支上修改,修改完成再將自己的分支代碼merge到develop環境,部署一下驗證。

4、提測階段(feature->test(release分支))

?4.1、到此階段前后端已經聯調完畢,自測Ok需要發起測試驗證即提測,此時迭代22開發在迭代33前上線,保險起見將master分支反合到該特性分支(feature-迭代22)以及test分支,
再將test分支代??碼反合到feature-迭代22分支(這么做減少沖突)最后將feature分支merge到test分支,部署test分支提測。4.2測試過程中發現bug,在各自分支修改,修改后合并到test分支,再部署驗證,別忘了也merge到develop分支。驗證?ok,選取時間點上線。

5、上線階段(test(release)->master)

可以拿test(release)分支上線,記住上完線要反合master分支,打tag

說明:在第4步中,應該有一個release分支,但是因為環境不支持等原因,以固定的test分支代替其作用;

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

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

相關文章

【廣州虛擬現實開發】VR智能中控系統進一步提高VR教學管理水平

隨著科技的不斷發展,虛擬現實(VR)技術已經逐漸走進了人們的生活。在教育領域,VR技術也得到了廣泛的應用,尤其是在教學終端中控系統方面。那么,廣州華銳互動開發的VR智能中控系統對學校有何益處呢? 首先,VR智…

RocketMQ(模式詳解,安裝)及控制臺安裝

下載 環境 64位操作系統,推薦 Linux/Unix/macOS 64位 JDK 1.8下載地址 https://rocketmq.apache.org/zh/download/ RocketMQ 的安裝包分為兩種,二進制包和源碼包。 二進制包是已經編譯完成后可以直接運行的,源碼包是需要編譯后運行的。 單…

LVS負載均衡DR(直接路由)模式

在LVS(Linux Virtual Server)負載均衡中的DR(Direct Routing)模式下,數據包的流向如下: 客戶端發送請求到負載均衡器(LVS)的虛擬IP(VIP)。負載均衡器&#x…

基于C++ 的OpenCV繪制多邊形,多邊形多條邊用不用的顏色繪制

使用基于C的OpenCV庫來繪制多邊形&#xff0c;并且為多邊形的不同邊使用不同的顏色&#xff0c;可以按照以下步驟進行操作&#xff1a; 首先&#xff0c;確保你已經安裝了OpenCV庫并配置好了你的開發環境。 導入必要的頭文件&#xff1a; #include <opencv2/opencv.hpp&g…

Bryntum Scheduler Pro 5.5.1 Crack

BRYNTUM 調度程序專業版,專業的日程安排小部件 Bryntum Scheduler Pro 5.5.1 一個專業有大腦的調度UI組件。Scheduler Pro 可幫助您安排任務&#xff0c;同時考慮資源和任務的可用性。 連接您的任務 讓 Scheduler Pro 處理剩下的事情。它將根據您定義的鏈接安排您的任務并遵守任…

BNC連接器市場分析:全球BNC連接器市場規模不斷增長

產品定義及統計范圍 BNC&#xff08;Bayonet-Neill-Concelman&#xff09;連接器是一種通常用于視頻和音頻信號傳輸的電連接器。它是以其兩位發明者Paul Neill和Carl Concelman的名字命名的&#xff0c;他們在20世紀40年代末開發了這種連接器。BNC連接器是一種設計用于同軸電纜…

ansible 修改遠程主機nginx配置文件

安裝ansible brew install ansible 或者 pip3 install ansible 添加遠程主機 設置秘鑰 mac登錄遠程主機 ssh -p 5700 root192.168.123.211 ssh localhost #設置雙機信任 ssh-kyegen -t rsa #設置主機兩邊的ssh配置文件 vi /etc/ssh/sshd_config/ PermitRootL…

UniApp 制作高德地圖插件

1、下載Uni插件項目 在Uni官網下載Uni插件項目&#xff0c;并參考官網插件項目創建插件項目. 開發者須知 | uni小程序SDK 如果下載下來項目運行不了可以參考下面鏈接進行處理 UniApp原生插件制作_wangdaoyin2010的博客-CSDN博客 2、引入高德SDK 2.1 在高德官網下載對應SD…

207. 課程表

思路 首先要完全理解題意&#xff0c;這道題的[a,b]并不是b滿足了a就可以真正的學習a這門課了&#xff0c;因為a還有可能需要其他選修課的條件。類似下圖。 ??這題的思路在于使用合適的數據結構來存儲&#xff0c;這里用hash表來存儲如果1這門課可以修了之后&#xff0c;可以…

docker pull 設置代理 centos

On CentOS the configuration file for Docker is at: /etc/sysconfig/docker 用 root 權限打開 text editor sudo gedit 注意 加引號 Adding the below line helped me to get the Docker daemon working behind a proxy server: HTTP_PROXY“http://<proxy_host>:&…

linux下shell編寫軟件看門狗

遇到一個問題&#xff0c;就是軟件崩潰&#xff0c;可以讓軟件自動重啟&#xff0c;而且數據庫必須是軟件崩潰之前的 #!/bin/sh while true do /app/app/record -qws cp -pr /msata/db/db_record.db /data/log/db_record.db mv /msata/db/db_record1.db /msata/db/db_record.d…

ubuntu20.04磁盤滿了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%

問題 執行 mysql 大文件導入任務&#xff0c;最后快完成了&#xff0c;查看結果發現錯了&#xff01;悲催&#xff01;都執行了 兩天了 The table ‘XXXXXX’ is full &#xff1f; 磁盤滿了&#xff1f; 剛好之前另一個 centos 服務器上也出現過磁盤滿了&#xff0c;因此&a…

神經網絡基礎-神經網絡補充概念-30-搭建神經網絡塊

概念 搭建神經網絡塊是一種常見的做法&#xff0c;它可以幫助你更好地組織和復用網絡結構。神經網絡塊可以是一些相對獨立的模塊&#xff0c;例如卷積塊、全連接塊等&#xff0c;用于構建更復雜的網絡架構。 代碼實現 import numpy as np import tensorflow as tf from tens…

LeetCode 38題:外觀數列

題目 給定一個正整數 n &#xff0c;輸出外觀數列的第 n 項。 「外觀數列」是一個整數序列&#xff0c;從數字 1 開始&#xff0c;序列中的每一項都是對前一項的描述。 你可以將其視作是由遞歸公式定義的數字字符串序列&#xff1a; countAndSay(1) "1"countAnd…

Linux后門大全-inetd后門(一)

環境 靶機&#xff1a;Ubuntu 16.04.7 LTS &#xff08;最好使用相同的版本或更老的版本&#xff0c;inetd是非常老的系統服務管理工具&#xff09; 192.17.0.4 攻擊機&#xff1a; 安裝inetd apt update apt-get install openbsd-inetd #檢查是否安裝成功,如果文件存在就安…

【使用群暉遠程鏈接drive掛載電腦硬盤】

文章目錄 前言1.群暉Synology Drive套件的安裝1.1 安裝Synology Drive套件1.2 設置Synology Drive套件1.3 局域網內電腦測試和使用 2.使用cpolar遠程訪問內網Synology Drive2.1 Cpolar云端設置2.2 Cpolar本地設置2.3 測試和使用 3. 結語 前言 群暉作為專業的數據存儲中心&…

《TCP IP網絡編程》第十六章

第 16 章 關于 I/O 流分離的其他內容 16.1 分離 I/O 流 「分離 I/O 流」是一種常用表達。有 I/O 工具可區分二者&#xff0c;無論采用哪種方法&#xff0c;都可以認為是分離了 I/O 流。 2次 I/O 流分離&#xff1a; 第一種是第 10 章的「TCP I/O 過程」分離。通 shutdown(soc…

C++STL——deque容器詳解

縱有疾風起&#xff0c;人生不言棄。本文篇幅較長&#xff0c;如有錯誤請不吝賜教&#xff0c;感謝支持。 &#x1f4ac;文章目錄 一.deque容器的基本概念二.deque容器常用操作①deque構造函數②deque元素操作③deque賦值操作④deque交換操作⑤deque大小操作⑥deque插入和刪除…

el-form組件相關的一些基礎使用

el-checkbox 01.description 多選單選框 02.場景舉例 需要對每一條數據展示她的某些狀態是否存在 03.代碼展示 <el-checkbox v-model"query.isAutoAccptncsign" true-label1 false-label0 :disabled"ifReview?true:false">自動發起承兌應答</…

直方圖均衡化和自適應直方圖均衡化

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 均衡化是數字圖像處理中常用的一種技術&#xff0c;用于增強圖像的視覺效果和對比度。&#xff0c;今天我們將實現對同一張圖像的直方圖均衡化和自適應直方圖均衡化處理&#xff0c;學習一下兩者的的基本原理和實現過程&a…