我的编程空间,编程开发者的网络收藏夹
学习永远不晚

git如何解决合并冲突

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

git如何解决合并冲突

这篇文章主要介绍“git如何解决合并冲突”,在日常操作中,相信很多人在git如何解决合并冲突问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”git如何解决合并冲突”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

git解决合并冲突的方法:1、编辑有冲突的文件,并删除文件中的特殊符号,根据需求修改代码;2、将指定文件添加到暂存区,并将指定的分支提交到主干,执行提交即可,其中使用“git commit”命令时不能带文件名,  加文件名会报错。

本文操作环境:Windows10系统、Git2.30.0版、Dell G3电脑。

git解决合并冲突

git冲突

多个分支代码合并到一个分支时,两个分支中修改了同一个文件,不管是什么地方修改,都会产生;

还有一种 两个分支中修改了同一个文件的名称时会产生。

原因

合并分支时,两个分支在同一个文件有两套完全不同的修改。Git 无法替

我们决定使用哪一个。必须人为决定新代码内容。

解决方法

编辑有冲突的文件,删除特殊符号,决定要使用的内容

添加到暂存区

执行提交(注意:此时使用 git commit 命令时不能带文件名,  加文件名会报错,成功提交后,merging消失)

示例如下:

1、冲突的产生

1.1、主干分支代码

在主干分支有两个文件

main.cpp

#include <stdio.h>#include <string.h>int main(){char data[100] = "my branch name is master";int length = strlen(data);for(int i = 0; i < length; i++){printf("%c", data[i]);}printf("branch master\n");return 0;}

README.md

this is master branch

这个时候tom和jack分别拉取了主干分支的代码,并进行了修改。

1.2、tom修改代码提交合并

tom创建A分支并对文件做了以下修改

main.cpp

#include <stdio.h>#include <string.h>int main(){char data[100] = "my branch name is A";int length = strlen(data);for(int i = 0; i < length; i++){printf("%c", data[i]);}printf("branch AAA\n");return 0;}

README.md

this is AAA branch

提交代码并合并到主干

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)$ git add .lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)$ git commit -m "A分支代码提交"[A ccb2626] A分支代码提交 2 files changed, 3 insertions(+), 3 deletions(-)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)$ git push origin AEnumerating objects: 7, done.Counting objects: 100% (7/7), done.Delta compression using up to 12 threadsCompressing objects: 100% (2/2), done.Writing objects: 100% (4/4), 376 bytes | 376.00 KiB/s, done.Total 4 (delta 1), reused 3 (delta 1), pack-reused 0remote: Powered by GITEE.COM [GNK-6.2]remote: Create a pull request for 'A' on Gitee by visiting:remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:A...lingpe:masterTo https://gitee.com/lingpe/kaol.git * [new branch]      A -> Alng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)$ git checkout masterSwitched to branch 'master'Your branch is up to date with 'origin/master'.lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)$ git merge AUpdating 40c0115..ccb2626Fast-forward README.md | 2 +- main.cpp  | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)$ git push origin masterTotal 0 (delta 0), reused 0 (delta 0), pack-reused 0remote: Powered by GITEE.COM [GNK-6.2]To https://gitee.com/lingpe/kaol.git   40c0115..ccb2626  master -> masterlng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)$

1.3、jack修改代码提交合并

jack对代码做了如下修改

main.cpp

#include <stdio.h>#include <string.h>int main(){char data[100] = "my branch name is B";int length = strlen(data);for(int i = 0; i < length; i++){printf("%c", data[i]);}printf("branch BBB\n");return 0;}

README.md

this is BBB branch

提交代码并合并到主干

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git add .lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git commit -m "B分支代码提交"[B bdcbe03] B分支代码提交 2 files changed, 3 insertions(+), 3 deletions(-)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git push origin BEnumerating objects: 53, done.Counting objects: 100% (53/53), done.Delta compression using up to 12 threadsCompressing objects: 100% (34/34), done.Writing objects: 100% (50/50), 4.66 KiB | 2.33 MiB/s, done.Total 50 (delta 16), reused 43 (delta 12), pack-reused 0remote: Powered by GITEE.COM [GNK-6.2]remote: Create a pull request for 'B' on Gitee by visiting:remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:B...lingpe:masterTo https://gitee.com/lingpe/kaol.git * [new branch]      B -> Blng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git checkout masterSwitched to branch 'master'Your branch is up to date with 'origin/master'.lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$ git merge BUpdating 40c0115..bdcbe03Fast-forward README.md | 2 +- main.cpp  | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$

push时产生冲突

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$ git push origin masterTo https://gitee.com/lingpe/kaol.git ! [rejected]        master -> master (fetch first)error: failed to push some refs to 'https://gitee.com/lingpe/kaol.git'hint: Updates were rejected because the remote contains work that you dohint: not have locally. This is usually caused by another repository pushinghint: to the same ref. You may want to first integrate the remote changeshint: (e.g., 'git pull ...') before pushing again.hint: See the 'Note about fast-forwards' in 'git push --help' for details.lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$

2、解决冲突

接下来就是如何解决冲突

切换回B分支,然后拉取主干分支代码

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git pull origin masterremote: Enumerating objects: 7, done.remote: Counting objects: 100% (7/7), done.remote: Compressing objects: 100% (3/3), done.remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0Unpacking objects: 100% (4/4), 356 bytes | 178.00 KiB/s, done.From https://gitee.com/lingpe/kaol * branch            master     -> FETCH_HEAD   40c0115..ccb2626  master     -> origin/masterAuto-merging main.cppCONFLICT (content): Merge conflict in main.cppAuto-merging README.mdCONFLICT (content): Merge conflict in README.mdAutomatic merge failed; fix conflicts and then commit the result.

拉取失败,可以看到提示信息,告诉我们哪个文件产生了冲突。

直接打开main.cpp文件,可以看到有以下特殊字符,提示我们哪一行代码产生了冲突。

#include <stdio.h>#include <string.h>int main(){<<<<<<< HEAD        char data[100] = "my branch name is B";=======        char data[100] = "my branch name is A";>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787        int length = strlen(data);        for(int i = 0; i < length; i++)        {                printf("%c", data[i]);        }<<<<<<< HEAD        printf("branch BBB\n");=======        printf("branch AAA\n");>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787        return 0;}

直接在文件中手动解决冲突。删除文件中的特殊字符,然后根据需求修改代码。

#include <stdio.h>#include <string.h>int main(){        char data[100] = "my branch name is B and A";        int length = strlen(data);        for(int i = 0; i < length; i++)        {                printf("%c", data[i]);        }        printf("branch BBB\n");        printf("branch AAA\n");        return 0;}~

同理,对README.md,手动解决冲突。

this is BBB and AAA branch

解决完冲突后提交到B分支

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)$ git add .lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)$ git commit -m "解决冲突"[B f30e1ea] 解决冲突lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git push origin BEnumerating objects: 10, done.Counting objects: 100% (10/10), done.Delta compression using up to 12 threadsCompressing objects: 100% (3/3), done.Writing objects: 100% (4/4), 405 bytes | 405.00 KiB/s, done.Total 4 (delta 1), reused 0 (delta 0), pack-reused 0remote: Powered by GITEE.COM [GNK-6.2]To https://gitee.com/lingpe/kaol.git   bdcbe03..f30e1ea  B -> Blng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$

最后将B分支合并到主干,就不会产生冲突了

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)$ git checkout masterSwitched to branch 'master'Your branch and 'origin/master' have perged,and have 1 and 1 different commits each, respectively.  (use "git pull" to merge the remote branch into yours)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$ git merge BUpdating bdcbe03..f30e1eaFast-forward README.md | 2 +- main.cpp  | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$ git push origin masterTotal 0 (delta 0), reused 0 (delta 0), pack-reused 0remote: Powered by GITEE.COM [GNK-6.2]To https://gitee.com/lingpe/kaol.git   ccb2626..f30e1ea  master -> masterlng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)$

至此,冲突成功解决

可以看下主干分支的代码

main.cpp

#include <stdio.h>#include <string.h>int main(){char data[100] = "my branch name is B and A";int length = strlen(data);for(int i = 0; i < length; i++){printf("%c", data[i]);}printf("branch BBB\n");printf("branch AAA\n");return 0;}

README.md

this is BBB and AAA branch

到此,关于“git如何解决合并冲突”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

git如何解决合并冲突

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

git如何解决合并冲突

这篇文章主要介绍“git如何解决合并冲突”,在日常操作中,相信很多人在git如何解决合并冲突问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”git如何解决合并冲突”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-07-02

怎么解决Git合并冲突的问题

本篇内容介绍了“怎么解决Git合并冲突的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!合并并不仅仅是简单的文件添加、移除的操作,Git
2023-06-04

git pull冲突如何解决

在使用Git进行代码版本控制时,经常会遇到冲突的情况。冲突发生在使用git pull命令从远程仓库拉取代码时,本地仓库和远程仓库的某个文件存在不同的修改,并且这些修改在同一个地方发生冲突。解决冲突的一般步骤如下:1. 执行git pull命
2023-08-23

git提交冲突问题如何解决

解决 Git 提交冲突问题一般有以下几个步骤:确定冲突的文件:在使用 Git 进行提交时,可能会出现冲突的文件。使用 `git status` 命令可以查看有冲突的文件列表。手动解决冲突:打开冲突的文件,可以看到类似以下内容的标记:>>>
2023-10-26

PHP Git 实战:如何解决代码冲突?

代码冲突是指 git 检测到不同开发者对同一文件中的同一部分进行更改时出现的情况。解决代码冲突的步骤包括:1. 标识冲突文件;2. 打开冲突文件比较并合并更改;3. 暂存合并的更改;4. 提交合并的更改。PHP Git 实战:解决代码冲突
PHP Git 实战:如何解决代码冲突?
2024-05-14

git解决冲突的方法

这篇文章将为大家详细讲解有关git解决冲突的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。git解决冲突的方法:首先在项目目录上点击右键,点击双向红箭头的位置;然后选择需要修改冲突的文件,选择merg
2023-06-06

git怎么解决merge冲突

要解决 Git 中的合并冲突,可以按照以下步骤进行操作:1. 首先,在合并冲突的分支上运行 `git status` 命令,查看冲突的文件列表。2. 打开冲突的文件,可以看到类似于以下的冲突标记:```冲突的代码(当前分支的修改)=====
2023-09-16

git如何发现冲突

随着软件开发日益复杂,协作工作也变得更加关键。为了能够高效、有序地协作,开发人员使用版本控制工具,Git 便是其中一种。然而,在多人同时修改同一份代码时,可能会出现冲突(conflict)的情况。本文将解释 Git 如何发现冲突以及如何解决
2023-10-22

git修改公共文件冲突如何解决

解决公共文件冲突可以按照以下步骤进行:首先,通过`git status`命令检查是否存在冲突文件。冲突文件通常会在文件中显示类似于以下的内容:>>>>>> 打开冲突文件,手动解决冲突部分。根据实际情况,选择保留本地代码或者远程代码,或者根
2023-10-26

深析git解决冲突步骤

在多人协作开发中经常会遇到代码冲突的情况,这时就需要使用 Git 来解决代码冲突。Git 是一个版本控制工具,它可以让我们轻松地对代码进行管理和协作开发。下面介绍的就是在 Git 中如何解决代码冲突的详细步骤。确定冲突在进行代码修改之前,首
2023-10-22

maven冲突如何解决

Maven冲突是指在项目中存在多个依赖项版本不一致或相互之间存在冲突的情况。解决Maven冲突可以采取以下几种方法:1. 更新依赖项版本:可以通过查看Maven依赖项的最新版本,手动更新冲突的依赖项版本,然后重新构建项目。这可能需要进行多次
2023-09-04

git中如何查看冲突

这篇“git中如何查看冲突”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“git中如何查看冲突”文章吧。检查是否存在冲突在 G
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录