Git 代碼分支規范

目的

俗話說:沒有規矩,不成方圓。遵循一個好的規章制度能讓你的工作事半功倍。同時也可以展現出你做事的認真的態度以及你的專業性,不會顯得雜亂無章,管理困難。Git分支規范也是一樣。當遵循了某種約定的Git分支,在代碼提交以及多開發、多分支協同工作的時候,必須遵循這個規范操作,否則不予以提交、合并代碼、提測、上線等操作。

適用范圍

適用Git管理開發的所有項目


分支約定

Git Flow有主分支和輔助分支兩類分支,通常主分支也被稱為長期分支。

  • 主分支用于組織與軟件開發、部署相關的活動;

  • 輔助分支組織為了解決特定的問題而進行的各種活動。

主分支是所有開發活動的核心分支。所有的開發活動產生的輸出物最終都會反映到主分支的代碼中。

分支介紹

?????tag:

使用release發布生產成功后,三日之內把release分支合并到master上并打tag。

使用realase分支創建tag版本,使用tag進行線上部署

生產流水線自動打tag

?????master分支:

不接受commit,只接受來自realase分支的merge操作

分支必須開啟分支保護,只有維護者可以操作

?????release分支:

可從test/master分支上拉取;

不接受commit,只接受來自對應test分支的合并操作;

普通開發人員不具有合并權限,需要管理員才能合并

release分支用于發布預生產環境部署;

上線成功后必須立即合并到master

release分支用于發布生產環境部署,上線完成后,禁止合并;

?????test分支

從master/develop分支拉取,用于測試環境部署

不接受commit提交,只接受來自對應develop的合并

?????develop分支:

從master/feature分支拉取,用于開發環境部署

不接受commit提交,只接受來自feature的合并

?????feature分支:

不限制從什么分支拉取,拉取代碼時候版本號必須大于等于最新master的版本

可直接commit

一般不用于任何環境部署,特殊情況可以用于開發環境部署

禁止用于測試、預生產、灰度、生產部署

bug修復分支,也按feature分支規范和流程

?????hotfix分支

緊急bug修復分支,僅用于緊急的線上問題修復,普通bug修復還是使用feature分支規范

分支命名規則及對應環境

分支

命名規則

名稱

環境

權限

master

master

主分支,保護分支,只接受merge?

-

保護

tag

?tag-{上線時間}-v{版本號}?

tag?如:tag-20220803-v1.2.0

-

只讀

release

release-{時間}-{版本號}-{創建人}?;

?預上線分支;release-20220803-v1.2.0-liuyy?

預生產、生產

保護

test

test-{時間}-{功能描述}-{創建人} ;除了前綴,名稱與develop一致

測試部署分支; test-20220803-superChargeV1-liuyy

測試

保護

develop

develop-{時間}-{功能描述}-{創建人}? ; 除了前綴,名稱與feature一致

開發部署分支;develop-20220803-superChargeV1-liuyy

開發

常規

feature

?feature-{創建時間}-{功能描述}-{創建人}?

功能開發分支;feature-20220803-superChargeV1-liuyy

-

常規

hotfix

hotfix-{創建時間}-{bug描述}-{創建人}

緊急bug修復分支;hotfix-20220803-bugxxx-liuyy

不限

常規

分支規則正則:

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

^(test|feature|develop|hotfix)-(20\d{6})(-\w+){2}$|^(release|tag)-(20\d{6})-v\d+(\.\d+){2}(-\w+){0,1}$

分支使用示意圖

總結

1、一個上線需求一個feature分支,正常情況feature、develop、test、release分支是一一對應的

2、如果有多個需求需要合并上線,那么需要從develop分支開始合并,即多個feature對一個develop分支,但develop、test、release也還是一一對應的

3、除了feature分支外,所有分支都不接受commit,只接受合并

4、普通bug修復使用feature分支,流程一樣

5、緊急bug修復走hotfix分支流程

6、所有上線的代碼必須走完完整的develop、test、release流程

代碼提交規范

  • 所有commit必須有注釋,內容必須簡潔明了的描述本次commit涵蓋了哪些內容。嚴禁注釋內容過于簡單或不能明確表達提交內容的!

  • 合理控制提交內容的顆粒度,一次commit含一個獨立功能點。嚴禁一次提交涵蓋多個功能項。

  • 提交注釋字符數務必大于8, 盡量控制在60個字符之內。

建議參考規范:

示例

fix(首頁模塊):修復彈窗 JS Bug。

type(可選)表示動作類型,可分為:

  • fix:修復 xxx Bug

  • feat:新增 xxx 功能

  • test:調試 xxx 功能

  • style:變更 xxx 代碼格式或注釋

  • docs:變更 xxx 文檔

  • refactor:重構 xxx 功能或方法

scope(可選)?表示影響范圍,可分為:模塊、類庫、方法等。

subject(必須)?表示簡短描述,大于8個字符,小于 60 個字,如果有編號的 Jira 號,建議在描述中加上。

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

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

相關文章

若依框架淺淺介紹

由若依官網所給介紹可知 1、文件結構介紹 在ruoyi-admin的pom.xml文件中引入了ruoyi-framework、ruoyi-quartz和ruoyi-generatior模塊,在ruoyi-framework的pom.xml文件中引入了ruoyi-system模塊。 2、技術棧介紹 前端:Vue、Element UI后端&#xff1a…

Redis持久化機制簡介

當涉及到Redis的持久化時,有兩種主要的持久化方式:RDB(Redis Database)快照和AOF(Append-Only File)日志。這些方式可以根據需求的不同,選擇適合的策略。 RDB(Redis Database&#…

第1章:緒論

科學、技術、工程、應用 科學:是什么、為什么技術:怎么做工程:怎樣做的多快好省應用:怎么使用 定義 機器學習:利用經驗改善系統自身的性能。 研究 智能數據分析(數據分析算法) 典型的機器…

電腦ip地址怎么改 ip地址怎么改到別的城市

一、ip地址怎么改到別的城市 1.ip地址怎么改到別的城市,1、重啟WIFI路由設備 一般手機或電腦在家或公司上網時都是接入到路由器的WIFI網絡,再由路由器分配上網IP地址,如果要更換上網IP那么重啟路由器設備后,路由器會向網絡運營商進行寬帶的重新撥號,此時手機或電腦設…

【【verilog 典型電路設計之加法器樹乘法器】】

verilog 典型電路設計之加法器樹乘法器 加法器樹乘法器 加法器樹乘法器的設計思想是“移位后加”,并且加法運算采用加法器樹的形式。乘法運算的過程是,被乘數與乘數的每一位相乘并且乘以相應的權值,最后將所得的結果相加,便得到了…

mongodb:環境搭建

mongodb 是什么? MongoDB是一款為web應用程序和互聯網基礎設施設計的數據庫管理系統。沒錯MongoDB就是數據庫,是NoSQL類型的數據庫 為什么要用mongodb? (1)MongoDB提出的是文檔、集合的概念,使用BSON&am…

【Go】常見的四個內存泄漏問題

Goroutine沒有順利結束 1、這里更多的是由于channelforselect導致的,錯誤的寫法導致了發送者或接收者沒有發現channel已經關閉,任務已經結束了,卻仍然在嘗試輸入輸出https://geektutu.com/post/hpg-exit-goroutine.html Map的remove方法不會…

selenium.webdriver Python爬蟲教程

文章目錄 selenium安裝和使用 selenium安裝和使用 pip install selenium 下載對應的瀏覽器驅動 實例化瀏覽器 from selenium import webdriverbrowser webdriver.Chrome()元素定位 控制瀏覽器

HTB-Keeper

HTB-Keeper 信息收集80端口 lnorgaardroot 信息收集 80端口 80主頁給了一個跳轉的鏈接 跟隨鏈接后到了一個登陸界面。 嘗試搜索默認密碼。 通過賬號root:password登錄。不知道為什么我登陸了兩次才成功。 通過搜索在Admin->Users->Select里面發現了用戶信息。 lno…

WS2812B————動/靜態顯示

一,系統架構 二,芯片介紹 1.管腳說明 2.數據傳輸時間 3.時序波形 4.數據傳輸方法 5.常用電路連接 三,代碼展示及說明 驅動模塊 在驅動模塊首先選擇使用狀態機,其中包括,空閑狀態,復位清空狀態&#xff0c…

怎么把圖片表格轉換成word表格?幾個步驟達成

在處理文檔時,圖片表格的轉換是一個常見的需求。而手動輸入表格是非常耗時的,因此,使用文本識別軟件來自動轉換圖片表格可以大大提高工作效率。在本文中,我們將介紹如何使用OCR文字識別技術來將圖片表格轉換為Word表格。 OCR文字識…

Vue3+Element plus+pageHelper實現分頁

安裝element plus npm install element-plus --save引入 修改main.js: import { createApp } from vue import App from ./App.vue import ElementPlus from element-plus import element-plus/dist/index.cssconst app createApp(App) app.use(ElementPlus) ap…

15.3 【Linux】循環執行的例行性工作調度

相對于 at 是僅執行一次的工作,循環執行的例行性工作調度則是由 cron (crond) 這個系統服務來控制的。剛剛談過 Linux 系統上面原本就有非常多的例行性工作,因此這個系統服務是默認啟動的。另外, 由于使用者自己也可以…

棧和隊列--受限制的線性表

目錄 和隊列的定義和特點 1.1棧的定義和特點、 1.2隊列的定義和特點 1.3棧和隊列的應用 2.棧的表示和操作的實現 2.1棧的類型定義 2.2順序棧的表示和實現 2.2.1初始化 2.2.2入棧 2.2.3出棧 2.2.4取棧頂元素 2.3鏈棧的表示和實現 2.2.1初始化 2.2.2入棧 2.2.3出棧…

Java-運算符和控制語句(下)(基于c語言的補充)

輸出到控制臺 System.out.println(msg); // 輸出一個字符串, 帶換行 System.out.print(msg); // 輸出一個字符串, 不帶換行 System.out.printf(format, msg); // 格式化輸出 從鍵盤輸入 使用 Scanner 讀取字符串/整數/浮點數 首先需要導入util包 自動導入util包 這里把回車看…

如何選擇最佳的文件傳輸協議?(FTP、TFTP、Raysync)

在數字化時代,通過互聯網傳輸文件是一項常見的任務。因此,選擇適合您企業需求的文件傳輸協議非常重要。 文件傳輸協議是發送方和接收方之間的一套規則和信息。它的作用就像網絡兩端都能理解的一種語言,使得數據可以正確輸出并帶有正確的文件…

【高頻面試題】JVM篇

文章目錄 一、JVM組成1.什么是程序計數器2.什么是Java堆?3.能不能介紹一下方法區(元空間)4.你聽過直接內存嗎5.什么是虛擬機棧6.垃圾回收是否涉及棧內存?7.棧內存分配越大越好嗎?8.方法內的局部變量是否線程安全?9.什么…

NIO 非阻塞式IO

NIO Java NIO 基本介紹 Java NIO 全稱 Java non-blocking IO,是指 JDK 提供的新 API。從 JDK1.4 開始,Java 提供了一系列改進的輸入/輸出的新特性,被統稱為 NIO(即 NewIO),是同步非阻塞的。NIO 相關類都被…

01-Spark環境部署

1 Spark的部署方式介紹 ? Spark部署模式分為Local模式(本地模式)和集群模式(集群模式又分為Standalone模式、Yarn模式和Mesos模式) 1.1 Local模式 Local模式常用于本地開發程序與測試,如在idea中 1.2 Standalone模…

PAT 1039 Course List for Student

個人學習記錄,代碼難免不盡人意。 Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who comes for a query. …