Git 合并冲突解决与状态分析笔记

前言

在使用 Git 进行代码管理时,合并分支是常见的操作之一。然而,在合并过程中可能会遇到冲突问题,尤其是在多人协作开发的场景下。本文将详细介绍如何解决 Git 合并冲突,并结合实际案例分析 git status 的输出含义。

背景

在一次项目开发中,我需要将远程的 master 分支合并到本地的 chenjj 分支上。在执行 git merge origin/master 时,遇到了文件冲突问题。以下是具体的操作步骤和解决方案。

问题描述

在执行以下命令时:git merge origin/master 这条命令的含义是将远程仓库 originmaster 分支的更改合并到当前分支中

git merge origin/master

终端输出了多个文件的冲突信息,包括普通文件(如 .js.vue.json)和二进制文件(如 .woff2.woff.ttf)。最终,git status 显示所有冲突已解决,但没有明确指出普通文件的冲突情况。

解决步骤

Git 合并代码的基本流程

1.切换到目标分支


使用 git checkout <target-branch> 切换到需要合并代码的目标分支。例如:

# 切换到目标分支(Chnejj)git checkout Chnejj

2.执行合并操作


使用 git merge <source-branch> 将源分支的更改合并到目标分支。例如: 

# 合并 Chnejj 分支到 master分支git master Chnejj

3.查看当前分支状态

运行以下命令查看当前分支的状态:

git status

 输出示例:

92391@DESKTOP-NSDKPQ6 MINGW64 ~/Desktop/app/likeban-applet2 (chenjj|MERGING)
$ git status
On branch chenjj
Your branch and 'origin/chenjj' have diverged,
and have 5 and 20 different commits each, respectively.(use "git pull" to merge the remote branch into yours)You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Changes to be committed:modified:   common/auth.jsmodified:   common/router.jsmodified:   common/scanAndQ.jsnew file:   components/news-components/news-ad.vuemodified:   env_dev.jsmodified:   env_prod.jsmodified:   pages.jsonmodified:   pages/app/index.vuemodified:   pages/city/login/index.vuemodified:   pages/city/login/login.vuemodified:   pages/city/reveal/revealPage.vuemodified:   pages/customerService/index.vuemodified:   pages/governmentAffairs/hotwireFeedback/index.vuemodified:   pages/gxbcyjs/jkzyjs/index.vuemodified:   pages/gxbcyjs/yczyjs/index.vuemodified:   pages/home/homeBusiness.vuemodified:   pages/home/homePage.vuemodified:   pages/home/subsistencePayment.vuemodified:   pages/newsBusiness/index.vuemodified:   pages/payment/heatingGs/history.vuenew file:   pages/skipPage/Carousel.vuemodified:   pages/skipPage/car.vuenew file:   pages/skipPage/pay.vuemodified:   pages/venueReservation/components/appointmentDetial.vuemodified:   pages/venueReservation/components/bookingDetial.vuenew file:   pages/venueReservation/components/notice.vuenew file:   pages/venueReservation/feedback.vuemodified:   pages/venueReservation/index.vuemodified:   pages/venueReservation/my.vuemodified:   pages/wuye/WuyeMain.vuemodified:   pages/wuye/districtReport/districtReport.vuemodified:   store/index.jsUnmerged paths:(use "git add <file>..." to mark resolution)both modified:   static/iconfont/iconfont.cssboth modified:   static/iconfont/iconfont.ttfboth modified:   static/iconfont/iconfont.woffboth modified:   static/iconfont/iconfont.woff2
  • 解释

    • 当前分支 chenjj 和远程分支 origin/chenjj 已经分叉。
    • 所有冲突已经解决,但合并尚未完成。
    • 列出了即将提交的更改文件。

4.开始关键性的解决冲突

  1. 解决二进制文件冲突

    • 保留本地版本:git checkout --ours -- <文件路径>
    • 保留远程版本:git checkout --theirs -- <文件路径>
#保留本地文件的指令 (我选择是保留本地的文件)git checkout --ours -- static/iconfont/iconfont.woff2
git checkout --ours -- static/iconfont/iconfont.woff
git checkout --ours -- static/iconfont/iconfont.ttf
git checkout --ours -- static/iconfont/iconfont.css# 保留远程的指令git checkout --theirs -- static/iconfont/iconfont.woff2
git checkout --theirs -- static/iconfont/iconfont.woff
git checkout --theirs -- static/iconfont/iconfont.ttf
git checkout --theirs -- static/iconfont/iconfont.css# 选择完成之后还需要对刚才保留下来的文件进行提交git add static/iconfont/iconfont.woff2
git add static/iconfont/iconfont.woff
git add static/iconfont/iconfont.ttf
git add static/iconfont/iconfont.css

解决冲突的指令: 

提交保留下来的文件的指令: 

此时我们已经解决完成了冲突,但是我们还是再写入查看当前分支状态的指令,再次确定一下所有的冲突都解决完成了

$ git status

 

此时输入指令之后,提示信息中没有冲突的提示了,这就证明了我们已经解决了所有的冲突

5. 理解为什么没有显示普通文件的冲突

  • 冲突已经解决

    • 在之前的合并过程中,Git 提示了一些普通文件存在内容冲突(如 common/auth.jspages.json 等)。
    • 我手动编辑了这些文件,删除了冲突标记(<<<<<<< HEAD=======>>>>>>> origin/master),并保留了需要的内容。
    • 使用 git add <文件路径> 标记这些文件为已解决。
  • 当前状态是“所有冲突已解决”

    • git status 显示 All conflicts fixed but you are still merging.,说明冲突已经解决。
    • 普通文件现在属于“Changes to be committed”,不会再显示为冲突文件。
  •  验证是否还有未解决的冲突

    为了确保没有遗漏的冲突,可以运行以下命令:

  • 检查是否有未解决的冲突文件

git diff --name-only --diff-filter=U

执行的 git diff --name-only --diff-filter=U 命令用于列出所有未解决的合并冲突文件。--name-only 参数表示只显示文件名,不显示具体的差异内容,而 --diff-filter=U 参数表示只显示那些存在未解决冲突(Unmerged)的文件。

该命令的输出结果是空的、没有输出任何文件名,这意味着在执行该命令时,已经没有未解决的冲突文件了,或者您可能需要先运行 git add 命令将解决冲突后的文件标记为已解决。

6. 完成合并

在确认所有冲突都已经解决后,运行以下命令完成合并

$ git commit -m "解决合并冲突"

7. 推送更改到远程

完成合并后,将本地分支推送到远程:

$ git push origin chenjj:chenjj

如果远程分支已经有新的提交记录,而你的本地分支没有包含这些记录,Git 可能会拒绝推送。此时需要先拉取远程分支的更改并解决冲突:

git pull origin chenjj

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22391.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChromeDriver版本不匹配问题的解决

今天运行一个以前写的爬虫程序&#xff0c;遇到如下错误&#xff1a; selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 121 Current browser version is 133.0.6943.98 w…

支持向量机(SVM):算法讲解与原理推导

1 SVM介绍 SVM是一个二类分类器&#xff0c;它的全称是Support Vector Machine&#xff0c;即支持向量机。 SVM的目标是找到一个超平面&#xff0c;使用两类数据离这个超平面越远越好&#xff0c;从而对新的数据分类更准确&#xff0c;即使分类器更加健壮。比如上面的图中&am…

华为云deepseek大模型平台:deepseek满血版

华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 1、注册&#xff1a; 华为云deepseek大模型平台注册&#xff1a;https://cloud.siliconflow.cn/i/aDmz6aVN 说明&#xff1a;填写邀请码的话邀请和被邀请的账号都会获得2000 万 Tokens&#xff1b;2个帐号间不会与其他关联…

保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek

要在Postman中访问Ollama API并调用DeepSeek模型&#xff0c;你需要遵循以下步骤。首先&#xff0c;确保你有一个有效的Ollama服务器实例运行中&#xff0c;并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级&#xff01;使用Ollama本地部署DeepSeek-R1大模型 并java…

ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析

一、基础知识 本篇我们使用 BOOT 按键来学习一下 GPIO 功能&#xff0c;首先补充一下相关术语介绍。 1、GPIO&#xff08;General Purpose Input/Output&#xff09; GPIO 是微控制器上的通用引脚&#xff0c;既可以作为输入&#xff08;读取外部信号&#xff09;&#xff0…

Win11 24h2 不能正常使用ensp的问题(已解决)

因为Win11 24h2的内核大小更改&#xff0c;目前virtualbox在7.1.4中更新解决了。所以Win11 24H2系统版本无法使用 5.x.xx的virtualbox版本&#xff0c;virtualbox对于这个5.x.xx版本早已停止维护&#xff0c;所以这个以后不会有调整。 对应的报错代码是 virtualbox错误代码&…

常用电脑,护眼软件推荐 f.lux 3400K | 撰写论文 paper

常用电脑&#xff1f;平均每天用 5 个小时&#xff1f;你就要考虑用一个护眼软件了&#xff0c;对皮肤也好。因为电脑屏幕有辐射&#xff0c;比如蓝光。 f.lux 作为一款专业护眼软件&#xff0c;值得使用。之前用了三年的 Iris Pro&#xff0c;现在 f.lux 做的更好了。 使用…

在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键

在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键&#xff0c;主要涉及到两个方面&#xff1a;确保 F1 键作为标准功能键工作 和 在 Snipaste 中设置 F1 为快捷键。 因为 Mac 默认情况下&#xff0c;F1-F12 键通常用作控制屏幕亮度、音量等系统功能的快捷键…

开源一款I2C电机驱动扩展板-FreakStudio多米诺系列

总线直流电机扩展板 原文链接&#xff1a; FreakStudio的博客 摘要 设计了一个I2C电机驱动板&#xff0c;通过I2C接口控制多个电机的转速和方向&#xff0c;支持刹车和减速功能。可连接16个扩展板&#xff0c;具有PWM输出、过流过热保护和可更换电机驱动芯片。支持按键控制…

Spring Security+JWT+Redis实现项目级前后端分离认证授权

1. 整体概述 权限管理包括用户身份认证和授权两部分&#xff0c;简称认证授权。对于需要访问控制到资源&#xff0c;用户首先经过身份认证&#xff0c;认证通过后用户具有该资源的访问权限方可访问。 1.1 认证概述 认证是确认用户身份的过程&#xff0c;确保用户是谁。 1.1.1 …

数据结构系列三:List+顺序表+ArrayList

数据结构系列三 一、List&#xff08;1&#xff09;什么是List&#xff08;2&#xff09;常见接口介绍&#xff08;3&#xff09;List的使用 二、顺序表与ArrayList&#xff08;1&#xff09;线性表&#xff08;2&#xff09;顺序表&#xff08;3&#xff09;顺序表常用方法的模…

全局变量,局部变量

在main函数中又定义一遍全局变量&#xff1a;会导致程序出错 因为在函数中调用这个全局变量时&#xff0c;调用的值是在头文件下面的初始值&#xff0c;虽然你在main函数中改变了变量的值&#xff0c;但是你在main函数中重新定义了 如果这样写会过50%的数据&#xff0c;因为在…

Unity贴图与模型相关知识

一、贴图 1.贴图的类型与形状 贴图类型 贴图形状 2.在Unity中可使用一张普通贴图来生成对应的法线贴图&#xff08;但并不规范&#xff09; 复制一张该贴图将复制后的贴图类型改为Normal Map 3.贴图的sRGB与Alpha sRGB&#xff1a;勾选此选项代表此贴图存储于Gamma空间中…

互联网搜索、联网搜索 API 的探索与公开接口、大模型联网搜索接口、全网搜索接口

互联网搜索、联网搜索 API 的探索与公开接口、大模型联网搜索接口、全网搜索接口 关键词&#xff1a;互联网搜索、API 接口、实时数据、大模型联网、智能问答、数据采集、技术实践、成本优势、市场对比 概述 在当前大模型及人工智能技术迅速发展的背景下&#xff0c;如何让离…

牛客练习赛134 —— B题 python 补题 + 题解

牛客练习赛134 B 题目描述 示例输入&#xff1a; 1 5 1 2 4 5 6 2 5 4 6 9示例输出&#xff1a; 32解题思路&#xff1a; 题目大意 给定一个2行n列的矩阵&#xff0c;允许交换两列一次&#xff0c;从左上角(1,1)走到右下角(2,n)&#xff0c;每一步只能向右或向下移动&#x…

电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦

下面的是我解决问题的心路历程&#xff0c;不想看的可以直接跳到解决方法上面&#xff01; 内心思路&#xff1a; w11电脑更新过系统后&#xff0c;我的电脑是常年不关机的&#xff0c;但是一天突然断网&#xff0c;试了很多方法都连不上&#xff0c;重启电脑就会好&#xff0…

Ubuntu部署ktransformers

准备工作 一台服务器 CPU&#xff1a;500G GPU&#xff1a;48G&#xff08;NVIDIA4090&#xff09; 系统&#xff1a;Ubuntu20.04&#xff08;github的文档好像用的是22.04&#xff09; 第一步&#xff1a;下载权重文件 1.下载hfd wget https://hf-mirror.com/hfd/hfd.s…

【Elasticsearch】同一台服务器部署集群

【Elasticsearch】同一台服务器部署集群 1. 同一台服务器搭建ES集群2. 配置不同的node节点3. ES集群中安装IK分词器4. 启动es集群5. Kibana访问集群6. es-head7. 集群中创建索引7.1 什么是分片以及分片的好处7.2 副本&#xff08;Replication&#xff09;7.3 通过es-head创建索…

1-1 VS Code+Keil5+STM32CubeMX开发环境搭建

1.0 卸载相关程序 使用这个方式安装工具&#xff0c;先将原先下载安装的软件去掉&#xff0c;然后再安装新的软件&#xff0c;这个卸载过程需要将原来的工具干净的卸载掉&#xff0c;使用专门的卸载工具&#xff0c;将注册表等文件也全部删除掉。 对于STM32CubeMX还要删除&…

C# 从基础神经元到实现在0~9数字识别

训练图片:mnist160 测试结果:1000次训练学习率为0.1时,准确率在60%以上 学习的图片越多&#xff0c;训练的时候越长(比如把 epochs*10 10000或更高时)效果越好 using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Windo…