git 如何解決分支合并沖突(VS code可視化解決+gitLab網頁解決)

1、定義:兩個分支修改了同一文件的同一行代碼,無法自動決定如何合并代碼,需要人工干預的情況。(假設A提交了文件a,此時B在未拉取代碼的情況下,直接提交是會報錯的,此時需要拉取之后再提交才會成功)

2、原始沖突解決演示:

背景:假設現在有主分支:develop,開發分支A,開發分支B,二者都是基于develop分支創建的,此時A 先向develop分支合并了一個文件index.js。然后B緊接著向develop分支上合并了自己修改的index.js文件,以為A和B都在index.js中寫了不同的代碼,此時git不知道保留哪段代碼。此時就會報代碼沖突。怎么解決呢?這里介紹的是在gitLab網頁上做合并分支操作的情況。

首先如果出現代碼沖突時,gitLab會給出提示提醒你合并沖突了,此時針對的代碼沖突可以在gitLab上點擊在線解決,?

如果不想在線解決沖突,也可在VS code中解決。首先使用git remote update -p ?# 獲取所有遠程最新數據,并清理過時的遠程分支?。其次git checkout 自己的開發分支名 ? # 切換到你的分支(假設當前不在你的分支)。然后git merge 主分支名 ? # 將遠程 develop 分支合并到你的分支。此時在左側的源代碼管理中會列舉沖突的文件(右側會提示感嘆號),點擊進去會顯示具體的沖突代碼,此時可以依據自己的需求解決沖突之后,然后重新提交推送合并即可。

3、上面說到的原始合并沖突會有個情況,即開發分支B收到了develop的污染。下面說下進階版。

背景:假設現在有主分支 :develop,開發分支A,開發分支B,初版發布分支1.1.0,更新版發布分支1.1.1,本次發布分支1.1.2。此時A與B分支都是基于1.1.0分支創建的,develop是調試用的分支。發布時會將各自的開發分支合并至發布分支上,但此時有個復雜情況就是分支A是第二次迭代的時候合并至1.1.1上了,此時分支B是第三次迭代的開發分支,是需要合并到1.1.2上的,此時有人就會問了,為什么B分支不在1.1.1的基礎上創建呢?因為第二次迭代與第三次迭代是同步開發的。此時我再想通過merge develop到B分支上時就會出現污染。因為develop分支上可能存在某些代碼是本次發布不需要發布出去的代碼。此時,比如有個需求,需要在開發分支B上修改1.1.1分支上的某個文件index.js,此時應該怎么做呢?

解決方案:使用 gitcheckout+臨時分支(推薦)

第一步:在本地模擬合并沖突

# 1. 確保當前在B分支且工作區干凈
git checkout B
git status ?# 確認沒有未提交的修改

# 2. 基于當前B創建臨時分支(用于安全測試合并)
git checkout -b 臨時分支名稱

# 3. 嘗試將 develop 合并到臨時分支(觸發沖突):(這里也可以merge1.1.1分支,只是develop是調試分支,所有的開發分支都需要合并至develop分支驗證通過才會合并至1.1.2上),這里解決的是B分支與develop分支合并沖突。

git merge develop
#這里會報沖突,但不會影響原B分支

第二步:在 VSCode 中查看沖突

VSCode 會自動檢測沖突:
1.打開 源代碼管理面板(左側導航欄的 Git 圖標)。
2.沖突文件會顯示為 紅色感嘆號 !,文件名旁標注 CONELICT 。
3.點擊沖突文件,會看到沖突標記(<<<<<<<、==----=、>>>>>>>)。

手動查看沖突文件:git status

第三步:清理臨時分支(不保存合并結果),此時B分支完全未被修改,且你已知道沖突文件。

git checkout B #切換回原分支

git branch -D 臨時分支名 #強制刪除臨時分支

第四步:此時可將剛剛在臨時分支上解決好的沖突代碼復制一份替換至B分支上,此時就可以精確的解決index.js文件的代碼沖突,而不會造成污染。此時再次提交推送合并即可。

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

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

相關文章

系統架構設計師(一):計算機系統基礎知識

系統架構設計師&#xff08;一&#xff09;&#xff1a;計算機系統基礎知識 引言計算機系統概述計算機硬件處理器處理器指令集常見處理器 存儲器總線總線性能指標總線分類按照總線在計算機中所處的位置劃分按照連接方式分類按照功能分類 接口接口分類 計算機軟件文件系統文件類…

聊一聊接口測試中緩存處理策略

目錄 一、強制繞過緩存 添加時間戳參數 修改請求頭 二、主動清除緩存 清除本地緩存 清除服務端緩存&#xff08;需權限&#xff09; 清除CDN緩存 三、測試緩存邏輯 首次請求獲取數據 記錄響應頭中的緩存標識????? 驗證緩存生效 測試緩存過期??????? 四…

機器學習算法-邏輯回歸

今天我們用 「預測考試是否及格」 的例子來講解邏輯回歸&#xff0c;從原理到實現一步步拆解&#xff0c;保證零基礎也能懂&#xff01; &#x1f3af; 例子背景 假設你是班主任&#xff0c;要根據學生的「學習時間」預測「是否及格」&#xff0c;手上有以下數據&#xff1a;…

【論文解讀】CVPR2023 PoseFormerV2:3D人體姿態估計(附論文地址)

論文鏈接&#xff1a;https://arxiv.org/pdf/2303.17472 源碼鏈接&#xff1a;https://github.com/QitaoZhao/PoseFormerV2 Abstract 本文提出了 PoseFormerV2&#xff0c;通過探索頻率域來提高 3D 人體姿態估計的效率和魯棒性。PoseFormerV2 利用離散余弦變換&#xff08;DC…

DRW - 加密市場預測

1.數據集描述 在本次比賽中&#xff0c;數據集包含加密市場的分鐘級歷史數據。您的挑戰是預測未來的加密貨幣市場價格走勢。這是一項kaggle社區預測競賽&#xff0c;您可以以 CSV 文件的形式或通過 Kaggle Notebooks 提交您的預測。有關使用 Kaggle Notebooks 的更多詳細信息&a…

嵌入式Linux系統中的啟動分區架構

在嵌入式Linux系統架構中,Linux內核、設備樹(Device Tree)與引導配置文件構成了系統啟動的基礎核心。如何安全、高效地管理這些關鍵文件,直接影響到系統的穩定性與可維護性。近年來,越來越多的嵌入式Linux開發者選擇將啟動相關文件從傳統的“混合存放”方式,轉向采用獨立…

用戶資產化視角下開源AI智能名片鏈動2+1模式S2B2C商城小程序的應用研究

摘要&#xff1a;在數字化時代&#xff0c;平臺流量用戶尚未完全轉化為企業的數字資產&#xff0c;唯有將其沉淀至私域流量池并實現可控、隨時觸達&#xff0c;方能成為企業重要的數字資產。本文從用戶資產化視角出發&#xff0c;探討開源AI智能名片鏈動21模式S2B2C商城小程序在…

Spring是如何實現屬性占位符解析

Spring屬性占位符解析 核心實現思路1?? 定義占位符處理器類2?? 處理 BeanDefinition 中的屬性3?? 替換具體的占位符4?? 加載配置文件5?? Getter / Setter 方法 源碼見&#xff1a;mini-spring 在使用 Spring 框架開發過程中&#xff0c;為了實現配置的靈活性&#xf…

【大模型面試每日一題】Day 31:LoRA微調方法中低秩矩陣的秩r如何選取?

【大模型面試每日一題】Day 31&#xff1a;LoRA微調方法中低秩矩陣的秩r如何選取&#xff1f; &#x1f4cc; 題目重現 &#x1f31f;&#x1f31f; 面試官:LoRA微調方法中低秩矩陣的秩r如何選取&#xff1f;&#xff1a; #mermaid-svg-g5hxSxV8epzWyP98 {font-family:"…

字節golang后端二面

前端接口使用restful格式&#xff0c;post與get的區別是什么&#xff1f; HTTP網絡返回的狀態碼有哪些&#xff1f; go語言切片與數組的區別是什么&#xff1f; MySQL實現并發安全避免兩個事務同時對一個記錄寫操作的手段有哪些&#xff1f; 如何實現業務的冪等性&#xff08;在…

Spring Security安全實踐指南

安全性的核心價值 用戶視角的數據敏感性認知 從終端用戶角度出發,每個應用程序都涉及不同級別的數據敏感度。以電子郵件服務與網上銀行為例:前者內容泄露可能僅造成隱私困擾,而后者賬戶若被操控將直接導致財產損失。這種差異體現了安全防護需要分級實施的基本原則: // 偽…

Leetcode第451場周賽分析總結

題目鏈接 競賽 - 力扣&#xff08;LeetCode&#xff09;全球極客摯愛的技術成長平臺 題目解析 A. 3560. 木材運輸的最小成本 AC代碼 class Solution { public:long long minCuttingCost(int n, int m, int k) {if (n > m) swap(n, m); // n < m;using ll long lon…

Linux中的shell腳本

什么是shell腳本 shell腳本是文本的一種shell腳本是可以運行的文本shell腳本的內容是由邏輯和數據組成shell腳本是解釋型語言 用file命令可以查看文件是否是一個腳本文件 file filename 腳本書寫規范 注釋 單行注釋 使用#號來進行單行注釋 多行注釋 使用 : " 注釋內容…

PHP與MYSQL結合中中的一些常用函數,HTTP協議定義,PHP進行文件編程,會話技術

MYSQL&#xff1a; 查詢函數: 執行查詢語句: 1.mysql_query("SQL語法"); 凡是執行操作希望拿到數據庫返回的數據進行展示的(結果返回: 數據結果); 2.執行結果的處理:成功為結果集&#xff0c;失敗為false; 成功返回結果:SQL指令沒有錯誤&#xff0c;但是查詢結果…

數學分析——一致性(均勻性)和收斂

目錄 1. 連續函數 1.1 連續函數的定義 1.2 連續函數的性質 1.2.1 性質一 1.2.2 性質二 1.2.3 性質三 1.2.4 性質四 2. 一致連續函數 2.1 一致連續函數的定義 2.2 一致連續性定理(小間距定理)(一致連續函數的另一種定義) 2.3 一致連續性判定法 2.4 連…

湖北理元理律師事務所:企業債務優化的科學路徑與人文關懷

湖北理元理律師事務所&#xff1a;企業債務優化的科學路徑與人文關懷 在中小企業經營壓力增大的背景下&#xff0c;如何平衡債務清償與員工生計成為關鍵課題。湖北理元理律師事務所聯合計劃集團公司&#xff0c;為服務企業設計了一套兼顧法律合規性與民生保障的債務解決方案&a…

樹莓派安裝openwrt搭建軟路由(ImmortalWrt固件方案)

&#x1f923;&#x1f449;我這里準備了兩個版本的openwrt安裝方案給大家參考使用&#xff0c;分別是原版的OpenWrt固件以及在原版基礎上進行改進的ImmortalWrt固件。推薦使用ImmortalWrt固件&#xff0c;當然如果想直接在原版上進行開發也可以&#xff0c;看個人選擇。 &…

一鍵凈化Excel數據:高性能Python腳本實現多核并行清理

摘要 本文分享兩個基于Python的Excel數據凈化腳本&#xff0c;通過多進程并行技術清除工作表內不可見字符、批注、單元格樣式等冗余內容&#xff0c;利用OpenPyXL實現底層操作&#xff0c;結合tqdm進度條和進程級任務分配&#xff0c;可快速處理百萬級單元格數據。適用于數據分…

【Netty】EventLoopGroup

在Netty的ServerBootstrap中設置兩個EventLoopGroup的作用是將網絡操作的兩個關鍵階段分離到不同的線程組中處理&#xff0c;從而優化性能并簡化并發控制。具體來說&#xff1a; 1. 兩個EventLoopGroup的角色 第一個EventLoopGroup&#xff08;通常稱為bossGroup&#xff09;&…

【前端】Vue中使用CKeditor作為富文本編輯器

官網https://ckeditor.com/ 此處記錄一下我在使用的時候具體初始化的代碼。 <template><div><textarea :id"id"></textarea></div> </template><script> export default {name: CkEditor,data: function () {return {id:…