git開發流程

分支介紹

  • master - 主分支

所有提供給用戶使用的正式版本,都在這個主分支上發布
開發者在此分支 不可進行 push 操作

  • dev - 開發分支

日常開發所使用的分支,開發者完成的階段性功能模塊將首先被合并到此分支
此分支亦是團隊內部測試、階段性工作驗證所使用的分支
開發者在此分支 不可進行 push 操作,只能通過 Pull Request 的方式將個人分支合并到此分支
開發過程中,要經常與此分支保持同步

  • feature/xxx - 特性分支

用于某個功能模塊的開發,例如:張三創建了一個 feature/package-manager 分支負責開發包管理器模塊
當該功能模塊開發任務完成后,通過 Pull Request 的形式進行請求合并,管理員 Code Review 通過后,將該分支合并到 dev 分支;此后,該分支將被刪除
一旦完成開發,它們就會被合并進 dev 分支**(僅能通過 Pull Request 的方式)**,然后被刪除
此類分支由開發者個人管理和使用, 可以進行 push 操作
開發過程中,此類分支要經常與 dev 分支保持同步

  • hotfix/xxx - 補丁分支

用于緊急修復 Bug 的分支,可以由 master 或 dev 分支創建
同 feature/xxx 分支一樣,一旦修復工作完成,它們就會被合并進 master 或 dev 分支 (僅能通過 Pull Request 的方式),然后就被刪除

工作流程

# 開發前克隆 dev 分支到本地
git clone -b dev url

第一步:新建分支

首先,每次開發新功能,都應該新建一個單獨的分支

# 獲取 dev 分支最新代碼
git checkout dev
git pull
# 新建一個特性分支
git branch feature/xxx
# 切換到該特性分支,進行開發
git checkout feature/xxx

第二部:提交分支

分支修改后,就可以提交了

# 提交代碼
git add .git commit -m "commit message"
# 例如
# git commit -m "feat: add login"# 推送代碼前,先保證分支代碼最新
# 切換并更新dev分支
git checkout dev
git pull --rebase# 切換到開發分支,合并dev分支代碼
git checkout feature/xxx
git rebase -i dev
# 如果有沖突再手動解決沖突# 開發過程中,將本地倉庫開發中的特性分支 push 到遠程倉庫(可選的)
git push -u origin feature/xxx

git push 的 -u 參數,表示將遠程倉庫 origin/feature/xxx 與 本地倉庫 feature/xxx 建立關聯,下一次執行 push 命令,可省略后面的遠程倉庫名和分支名,直接輸入 git push 即可

commit message規范

用于說明git commit的類別,只允許使用下面的標識。

feat:新功能(feature)。
fix:修復bug,可以是QA發現的BUG,也可以是研發自己發現的BUG。
docs:文檔(documentation)。
style:格式(不影響代碼運行的變動)。
refactor:重構(即不是新增功能,也不是修改bug的代碼變動)。
perf:優化相關,比如提升性能、體驗。
test:增加測試。
chore:構建過程或輔助工具的變動。
revert:回滾到上一個版本。
merge:代碼合并。
sync:同步主線或分支的Bug。

第三步:與 dev 主干同步

分支的開發過程中,要經常與 dev 主干保持同步


# 獲取 dev 分支最新代碼
git checkout dev
git pull# 切換回當前開發的特性分支
git checkout feature/xxx
# 合并 dev 分支到當前分支
git rebase dev

第四步:發出 Pull Request

完成當前特性分支的所有開發任務,進行最后一次 與 dev 主干同步 工作,并提交到遠程倉庫以后,就可以發出 Pull Request 到 dev 分支,然后請求管理員進行 Code Review ,確認可以合并到 dev 分支

# 最后進行一次步驟三的同步工作# 提交到遠程倉庫
git checkout feature/xxx
git push origin feature/xxx
# 在 GitHub 管理界面創建 Pull Request,等待管理員進行 Code Review

第五步:清理無用的分支

某個特性分支開發任務全部完成后,應刪除它

# 首先,切換回 dev 分支
git checkout dev# 先刪除遠程特性分支
git push origin -d feature/xxx# 再刪除本地特性分支
git branch -d feature/xxx

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

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

相關文章

Xcode 16 beta3 真機調試找不到 Apple Watch 的嘗試解決

很多小伙伴們想用 Xcode 在 Apple Watch 真機上調試運行 App 時卻發現:在 Xcode 設備管理器中壓根找不到對應的 Apple Watch 設備。 大家是否已將 Apple Watch 和 Mac 都重啟一萬多遍了,還是束手無策。 Apple Watch not showing in XCodeApple Watch wo…

C++基礎語法:STL之容器(1)--容器概述和序列概述

前言 "打牢基礎,萬事不愁" .C的基礎語法的學習 引入 STL是標準模板庫,類模板主要是用來做容器的,所以個人理解:標準模板庫是"標準容器庫".容器是STL的核心 .以<C Prime Plus> 6th Edition(以下稱"本書")內容理解容器. 類模板內容回顧 類…

NineData全面支持PostgreSQL可視化表結構設計

“PostgreSQL 是最像 Oracle 的開源關系型數據庫“&#xff0c;也正因為如此&#xff0c;很多企業都青睞 PostgreSQL&#xff0c;拿它當成 Oracle 的替代品。所以毫無疑問&#xff0c;目前 PostgreSQL 在企業中非常常見。 對于直接接觸 PostgreSQL 的開發人員而言&#xff0c;…

echarts多柱堆疊的X軸順序

在一些圖表場景中&#xff0c;需要顯示多柱堆疊的數據&#xff0c;那么X軸上每一段單位區域內會有多根柱子&#xff0c;每一根柱子標識不同的數量項含義&#xff0c;那么怎樣控制這幾根柱的左右順序呢&#xff1f; 其實這跟echarts的option里的series由關&#xff0c;開始我以為…

快速排序及歸并排序的實現與排序的穩定性

目錄 快速排序 一. 快速排序遞歸的實現方法 1. 左右指針法 步驟思路 為什么要讓end先走&#xff1f; 2. 挖坑法 步驟思路 3. 前后指針法 步驟思路 二. 快速排序的時間和空間復雜度 1. 時間復雜度 2. 空間復雜度 三. 快速排序的優化方法 1. 三數取中優化 2. 小區…

實驗豐富、原創改進!|多策略改進蜣螂優化算法(MATLAB)

本文內容來源于本人公眾號&#xff1a;KAU的云實驗臺&#xff0c;更新內容&#xff1a;智能優化算法及其改進應用。 本文核心內容&#xff1a; 新穎的多策略改進蜣螂優化算法 對比算法包括&#xff1a;高引用/新發布/經典/其他DBO變體&#xff08;共11種&#xff09; 實驗設計…

用c語言寫一個貪吃蛇游戲

貪吃蛇游戲通常涉及到終端圖形編程和簡單的游戲邏輯。以下是一個基本的實現示例&#xff0c;包括貪吃蛇的移動、食物生成、碰撞檢測等功能。 1. 貪吃蛇游戲的基本結構 貪吃蛇游戲可以分為以下幾個部分&#xff1a; 游戲地圖和終端繪制&#xff1a;使用二維數組表示游戲地圖&am…

SpringBoot結合ip2region實現博客評論顯示IP屬地

你好呀&#xff0c;我是小鄒。 在現代的Web應用中&#xff0c;特別是博客和論壇類網站&#xff0c;為用戶提供地理定位服務&#xff08;如顯示用戶所在地理位置&#xff09;可以極大地增強用戶體驗。本文將詳細探討如何使用Java和相關技術棧來實現在博客評論中顯示用戶的地址信…

Java實驗3

實驗內容 學生信息管理系統 學生成績表Student(Sno 字符串&#xff0c;長度9, Sname 字符串&#xff0c;長度10, Class 字符串&#xff0c;長度10, Age 整型, Sex 字符串&#xff0c;長度2) 實現如下功能&#xff1a; A&#xff0e;輸入若干個學生的信息到Student表&#x…

初學Python必須知道的14個強大單行代碼

引言&#xff1a;Python的魅力與單行代碼的重要性 Python以其簡潔明了的語法、豐富的內置函數和強大的第三方庫深受廣大開發者喜愛。尤其對于編程小白來說&#xff0c;學習Python就像打開了一扇通向編程世界的大門。而單行代碼&#xff0c;作為Python魅力的一部分&#xff0c;…

【NetTopologySuite類庫】合并所有幾何的包圍盒AABB

流程示意圖 示例代碼 using GeoAPI.Geometries; using Microsoft.VisualStudio.TestTools.UnitTesting; using NetTopologySuite.Geometries; using NetTopologySuite.IO; using System.Collections.Generic; using System.Linq;namespace Test472 {[TestClass]public class T…

深度解析:電商訂單API及其技術實現

隨著電子商務的發展&#xff0c;實體企業開拓電商渠道的越來越多&#xff0c;原有的管理系統都需要增加電商業務管理功能&#xff0c;其中&#xff0c;對電商訂單的管理是每一個電商商家都需要的功能&#xff0c;所以對于開發者來說&#xff0c;了解電商API是什么是非常重要的&…

第100+16步 ChatGPT學習:R實現Xgboost分類

基于R 4.2.2版本演示 一、寫在前面 有不少大佬問做機器學習分類能不能用R語言&#xff0c;不想學Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi轉一下就得了唄。 加上最近也沒啥內容寫了&#xff0c;就幫各位搬運一下吧。 二、R代碼實現Xgboost分類 &#xff08…

LeetCode題練習與總結:比較版本號--165

一、題目描述 給你兩個 版本號字符串 version1 和 version2 &#xff0c;請你比較它們。版本號由被點 . 分開的修訂號組成。修訂號的值 是它 轉換為整數 并忽略前導零。 比較版本號時&#xff0c;請按 從左到右的順序 依次比較它們的修訂號。如果其中一個版本字符串的修訂號較…

C++動態內存的管理

今天來分享C動態內存管理相關知識&#xff0c;閑言勿談&#xff0c;直接上干貨。 1. 動態內存的開辟和銷毀(new和delete) (1)前置知識&#xff1a;我們知道c語言有malloc和calloc和realloc三個函數可以進行動態的開辟內存&#xff0c;那么它們有什么區別呢&#xff1f;首先是…

MPS 后端

本文來自&#xff1a; https://pytorch.org/docs/stable/notes/mps.html https://pytorch.ac.cn/docs/stable/notes/mps.html MPS 后端 mps 設備支持 在使用 Metal 編程框架的 MacOS 設備上&#xff0c;進行高性能 GPU 訓練。 它引入了新的設備&#xff0c;將機器學習計算圖和…

【C語言】條件運算符詳解 - 《 A ? B : C 》

目錄 C語言條件運算符詳解1. 條件運算符的語法和使用示例 1&#xff1a;基本用法輸出 2. 嵌套條件運算符示例 2&#xff1a;嵌套條件運算符輸出 3. 條件運算符與 if-else 語句的比較示例 3&#xff1a;使用 if-else 語句示例 4&#xff1a;使用條件運算符 4. 條件運算符的實際應…

PLC_博圖系列?基本指令”TONR:時間累加器“

PLC_博圖系列?基本指令”TONR&#xff1a;時間累加器“ 文章目錄 PLC_博圖系列?基本指令”TONR&#xff1a;時間累加器“背景介紹TONR&#xff1a; 時間累加器說明參數脈沖時序圖示例 關鍵字&#xff1a; PLC、 西門子、 博圖、 Siemens 、 TONR 背景介紹 這是一篇關于P…

ElasticSearch學習之路

前言 為什么學ElasticSearch&#xff1f; 數據一般有如下三種類型&#xff1a; 結構化數據&#xff0c;如&#xff1a;MySQL的表&#xff0c;一般通過索引提高查詢效率非結構化數據&#xff0c;如&#xff1a;圖片、音頻等不能用表結構表示的數據&#xff0c;一般保存到mong…

Linux C++ 054-設計模式之外觀模式

Linux C 054-設計模式之外觀模式 本節關鍵字&#xff1a;Linux、C、設計模式、外觀模式 相關庫函數&#xff1a; 概念 外觀模式&#xff08;Facade&#xff09;&#xff0c;亦稱“過程模式”。主張按照描述和判斷資料來評價課程&#xff0c;關鍵的活動是在課程實施的全過程中…