【嵌入式開發 Linux 常用命令系列 8 -- git checkout 解沖突詳細介紹】

文章目錄

  • 1. Git 沖突產生的場景
  • 2. 沖突標記符號解釋
  • 3. git checkout --ours 和 git checkout --theirs
      • 語法
      • 含義
      • 使用場景
  • 4. 操作完成后的流程
  • 5. 舉例演示

1. Git 沖突產生的場景

當你在 git mergegit rebasegit cherry-pick 等操作時,如果 同一個文件的同一部分在兩個分支中都被修改了,Git 就會無法自動合并,結果是產生沖突。

沖突后的文件中會出現類似這樣的標記:

<<<<<<< HEAD
printf("Hello from main branch\n");
=======
printf("Hello from feature branch\n");
>>>>>>> feature

2. 沖突標記符號解釋

  • <<<<<<< HEAD
    表示 當前分支(即你所在的分支) 的內容,也就是 ours

  • =======
    表示 ours 與 theirs 的分隔符。

  • >>>>>>> feature
    表示 要合并進來的分支(目標分支) 的內容,也就是 theirs

所以:

  • ours = 當前分支(HEAD)

  • theirs = 你要合并的分支

3. git checkout --ours 和 git checkout --theirs

這兩個命令在沖突文件存在時使用,可以幫助你快速選擇保留哪一方的版本。

語法

git checkout --ours <file>
git checkout --theirs <file>

含義

  • git checkout --ours <file>
    <file> 沖突部分全部替換為 當前分支(HEAD,ours) 的內容。

  • git checkout --theirs <file>
    <file> 沖突部分全部替換為 合并進來的分支(theirs) 的內容。

使用場景

  1. 如果你 確信本地分支的修改更正確,執行:

    git checkout --ours filename.c
    
  2. 如果你 確信遠端分支的修改更正確,執行:

    git checkout --theirs filename.c
    
  3. 如果想要手動融合兩邊的修改(而不是簡單選擇一方),就要編輯沖突文件,把沖突標記符號 <<<<<<<=======>>>>>>> 刪除,并保留你想要的代碼。

4. 操作完成后的流程

無論是用 --ours--theirs,還是手動修改,最后都要:

git add <file>
git commit

Git 會生成一個合并提交(如果是 merge)。

5. 舉例演示

假設我們在 main 分支有:

printf("Hello from main branch\n");

feature 分支有:

printf("Hello from feature branch\n");

合并時沖突文件會是:

<<<<<<< HEAD
printf("Hello from main branch\n");
=======
printf("Hello from feature branch\n");
>>>>>>> feature
  • 如果執行 git checkout --ours file.c → 文件變成:

    printf("Hello from main branch\n");
    
  • 如果執行 git checkout --theirs file.c → 文件變成:

    printf("Hello from feature branch\n");
    

總結:

  • ours = 當前分支 (HEAD)

  • theirs = 要合并進來的分支

  • <<<<<<< / ======= / >>>>>>> 是沖突標記,標記 ours 與 theirs 的不同部分。

  • git checkout --ours → 保留當前分支的修改

  • git checkout --theirs → 保留合并分支的修改

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

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

相關文章

16-day13強化學習和訓練大模型

強化學習 強化學習和監督學習是機器學習中的兩種不同的學習范式 強化學習&#xff1a;目標是讓智能體通過與環境的交互&#xff0c;學習到一個最優策略&#xff0c;以最大化長期累積獎勵。 例如&#xff0c;在機器人導航任務中&#xff0c;智能體需要學習如何在復雜環境中移動&…

OpenAI o1:OpenAI最新推出的AI大語言模型,更擅長推理也更貴

本文轉載自&#xff1a;OpenAI o1&#xff1a;OpenAI最新推出的AI大語言模型&#xff0c;更擅長推理也更貴 - Hello123工具導航 ** 一、&#x1f916; OpenAI o1 是什么&#xff1f; OpenAI o1 是 2024 年推出的推理特化型 AI 模型&#xff0c;主打 “慢思考、深分析”&#…

自然語言處理——03 RNN及其變體

1 認識RNN 1.1 概念循環神經網絡 RNN &#xff08;Recurrent Neural Network&#xff0c;簡稱RNN&#xff09;——處理序列數據的神經網絡&#xff1b;一般以序列數據作為輸入&#xff0c;通過網絡內部的結構設計有效捕捉序列之間的關系特征&#xff0c;一般也是以序列形式進行…

量子計算基礎

量子計算 量子計算一般由三個基本步驟組成&#xff1a;制備輸入量子態、對于量子態執行幺正變換以及測量輸出態&#xff0c;這里將介紹這三個基本要素。 1 量子態 與經典計算中比特(bit)的概念相對應&#xff0c;量子計算中最小信息載體和處理單位是量子比特(quantum bit, or t…

Apache Maven 3.1.1 (eclipse luna)

Apache Maven 3.1.1 &#xff08;eclipse luna&#xff09;D:\apache-maven-3.1.1\binMAVEN_HOME:D:\apache-maven-3.1.1PATH:D:\apache-maven-3.1.1\binmvn -vMaven Integration for Eclipse(Luna)

應用篇#1:YOLOv8模型在Windows電腦攝像頭上的部署

一、前言如何部署YOLOv8模型在攝像頭上是完成模型應用必須解決的問題&#xff0c;通過使用“cv2”這個庫&#xff0c;可以完成對電腦攝像頭的調用&#xff08;本人Windows聯想&#xff09;&#xff0c;實時檢測并輸出圖像。二、代碼實現與解讀import warnings import cv2 from …

關于內存泄漏的一場討論

下面是以前&#xff08;大概2003、2004年吧&#xff09;在某BBS上的一場關于內存泄漏的討論。我先原樣貼出當時存檔的&#xff0c;如果C友友興趣&#xff0c;我再整理成文章。發信人: tianshangfei(天上飛的豬), 信區: C 標 題: 什么叫做內存泄漏&#xff0c;誰能定義一下呢 :…

Java全棧開發實戰:從基礎到微服務的深度解析

Java全棧開發實戰&#xff1a;從基礎到微服務的深度解析 一、面試官開場介紹 面試官&#xff08;微笑&#xff09;&#xff1a;你好&#xff0c;我是今天的面試官&#xff0c;我們公司是互聯網大廠&#xff0c;負責前端和后端的全棧開發。今天主要想了解你在技術方面的掌握情況…

深度學習--PyTorch代碼框架

一代碼import torch print(torch.__version__) # 驗證安裝的開發環境是否正確 MNIST 包含 70,000 張手寫數字圖像&#xff1b;60,000 張用于訓練&#xff0c;10,000 張用于測試。 圖像是灰度的&#xff0c;28x28 像素的&#xff0c;并且居中的&#xff0c;以減少預處理和加快運…

LinkedIn 自動消息發送工具

LinkedIn 自動消息發送工具說明文檔 一、項目概述 本項目是一個基于 Python 的自動化工具&#xff0c;用于批量向指定 LinkedIn 用戶發送消息。 核心功能包括&#xff1a; 讀取消息模板和 URL 列表&#xff1b;使用瀏覽器模擬操作&#xff0c;自動發送 LinkedIn 消息&#xff1…

新的 macOS 安裝程序聲稱能夠快速竊取數據,并在暗網上銷售

一種新型 macOS 信息竊取惡意軟件&#xff0c;被命名為 Mac.c&#xff0c;已成為地下惡意軟件即服務 (MaaS) 生態系統中強大的競爭者。 Mac.c 由使用化名“mentalpositive”的威脅行為者公開開發&#xff0c;是臭名昭著的 Atomic MacOS Stealer (AMOS) 的簡化衍生品&#xff0…

我的小灶坑

最近在寫項目 有時候希望有個人能跟我一起來寫 這樣子交流中也能有很多新的想法 但也并不是都是優點 因為我現在不是處于對這個項目的每個步驟都很熟悉的階段。 我覺得一個人從零到一確實能捋順不少 但是我在做項目的時候發現自己經常容易被細節的部分牽制 比如說一個按鈕的樣式…

6.4 Element UI 中的 <el-table> 表格組件

一、 核心組成與基本結構Element UI 的表格主要由以下幾個核心部分構成&#xff1a;<el-table>: 表格的根容器&#xff0c;負責管理數據、選擇、排序、分頁集成等全局狀態。<el-table-column>: 定義表格的一列。表格的列結構由一個或多個 <el-table-column> …

Linux 軟件編程(十一)網絡編程:TCP 機制與 HTTP 協議

五、TCP 進階機制&#xff08;一&#xff09;TCP 頭部標志位TCP 頭部的標志位是控制通信行為的 “開關”&#xff0c;常用標志位功能&#xff1a;標志位含義典型場景SYN請求建立連接三次握手第一步&#xff0c;發起連接請求ACK響應報文確認回復對方&#xff0c;確認已收到數據P…

[element-plus] el-table在行單擊時獲取行的index

el-table中添加 row-class-name&#xff0c;綁定row-click事件 <el-table:data"list":row-class-name"tableRowClassName"row-click"handleRowClick" > </el-table>給el-table中的每個row對象里添加index屬性 tableRowClassName({…

真實應急響應案例記錄

成功溯源的應急背景事件背景&#xff1a;服務器被植入博彩黑鏈入侵排查查看日志&#xff1a;發現Struts2漏洞利用痕跡通過process monitor工具監控Web進程(java.exe),發現執行了以下命令:攻擊入侵者服務器查看Web日志,可發現攻擊者的的Ip地址61.139.77.xx (四川省成都市 61.139…

RAG學習(五)——查詢構建、Text2SQL、查詢重構與分發

檢索優化&#xff08;二&#xff09; 一、查詢構建 在前面的章節中&#xff0c;我們探討了如何通過向量嵌入和相似度搜索來從非結構化數據中檢索信息。然而&#xff0c;在實際應用中&#xff0c;我們常常需要處理更加復雜和多樣化的數據&#xff0c;包括結構化數據&#xff0…

【typenum】 28 數組長度和二進制數的位數(Len)

一、源碼 這段代碼實現了一個類型級別的長度計算系統&#xff0c;用于在編譯時計算數組長度和二進制數的位數。 定義&#xff08;type_operators.rs&#xff09; /// A **type operator** that gives the length of an Array or the number of bits in a UInt. #[allow(clippy:…

【Docker項目實戰】使用Docker部署Hibiscus.txt簡單日記工具

【Docker項目實戰】使用Docker部署Hibiscus.txt簡單日記工具一、Hibiscus介紹1.1 Hibiscus簡介1.2 主要特點二、本次實踐規劃2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3 檢查docker compose 版本四、拉取鏡像五、部署Hibis…

openharmony之啟動恢復子系統詳解

OpenHarmony的啟動恢復子系統負責整個系統的啟動流程&#xff0c;其中init進程是整個系統啟動的第一個用戶態進程&#xff08;PID1&#xff09;&#xff0c;承擔著系統初始化的核心職責 &#x1f3af; 目錄結構 &#x1f4cb; 理論基礎&#x1f50d; 源碼結構分析?? 配置體系…