首页 > 其他分享 >【作业练习】Git分支冲突

【作业练习】Git分支冲突

时间:2024-08-16 23:52:21浏览次数:10  
标签:Git 练习 作业 修改 git 此时 txt hello 分支

使用Git模拟一个冲突,并且使用Git解决。

产生冲突的原因:

如果合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,假设此时我们将一个修改的子分支合并到我们修改了的主分支里面,那么此时便有可能发生冲突合并。

。就会出现冲突,此时git 无法替我们决定使用哪一个,必须人为决定新代码内容。

冲突产生的表现:后面状态为 MERGING

模拟下冲突合并发生的过程以及解决的办法:

1:首先我们在master分支下修改hello.txt文件:

 修改完成后,执行修改文件、提交暂存区、本地库命令

2:完毕后此时我们切换到我们的创建的git-fix 分支下去修改我们git-fix 分支下的hello.txt文件,

修改完成后,继续重复之前的操作,修改完成后,执行修改文件、提交暂存区、本地库命令

3:此时完成对git-fix分支下的hello.txt文件的修改以及上传后,通过git checkout master命令,回到master主分支下,进行分支的合并

分支合并的的操作:

输入git merge git-fix后此时便会出现我们的分支冲突,

原因是master分支和git-fix分支都对我们的hello.txt文件进行了修改,导致将git-fix分支合并到master分支的时候,git不知道使用两个分支的哪一套针对hello.txt文件的修改方案,那么此时便会发生分支冲突。

分支冲突:返回后提示信息会出现一个conflict英文字母以及当出现冲突后,分支状态(括号内的字母)不再是master,而是master|MERGING,表明一直在合并中,但是没有成功。

在分支冲突的情况下,输入git status命令后,我们会发现此时的hello.txt文件是没有合并成功的:both modified hello.txt表示两个分支都修改了hello.txt文件,此时git不敢自动合并分支了,只能我们人为手动合并分支代码了。

手动合并分支代码的如何操作:

第一步:此时首先使用vi hello.txt命令先手动打开我们的文件,此时我们会发现跟之前有一些不同之处:此时我们会发现三个特殊的符号:<<<<<<>>>>>>中间为要合并进master分支的代码

第二步:为了解决我么分支冲突的问题,此时需要人工修改我们的代码,之前我们修改了hot-fix分支下的hello.txt文件中的最后一行,修改了master分支下的hello.txt文件的倒数第二行,此时我们要将hot-fix分支合并到master分支下,那么我们的hello.txt文件此时倒数两行都应该要被修改,那么此时我们就按照我们预期的效果来进行人工修改,删除特殊符号,决定要使用的内容即可:

修改完成后,输入:wq保存后,此时我们仍需要将我们人为修改的hello.txt文件上传到我们的暂存区以及我们的本地库中

修改完成后,再次查看文件,两个分支修改的内容已经被合并

第三步:将我们人工修改后的hello.txt文件上传到暂存区:会发现此时冲突合并还没有解决,因为此时括号内还是有MERGING

第四步:此时继续将修改后的hello.txt文件提交到本地库中去,但是此处需要注意的是之前我们将文件提交到本地库的命令为git commit -m "日志信息" 文件名

1:假设此时我们带上了文件名的话:会报一个致命的错误:

2:为了解决我们分支的合并冲突,此时不能加文件名,这样才能解决我们的冲突合并:如下图所示:

假设此时不带上我们的文件名的话,此时便解决了我们的冲突合并,并且此时我们括号内的master|MERGING变成了master,说明此时成功了。

第五步:使用vim hello.txt命令查看我们的hello.txt文件内容:发现此时分支代码合并成功,是我们所预期的效果。

注意:
此时我们合并的代码只是覆盖了原本我们主分支master下的hello.txt文件内的内容
但是我们子分支git-fix分支下的内容并没有发生改变

我们可以看到我们的子分支git-fix中的hello.txt文件内容并没有发生改变:

标签:Git,练习,作业,修改,git,此时,txt,hello,分支
From: https://blog.csdn.net/qq_45008212/article/details/141232545

相关文章

  • tortoisegit下载及其使用流程
    下载    官方下载链接:Download–TortoiseGit–WindowsShellInterfacetoGit    选择适合自己的电脑位数的版本:一般64的兼容32的按照就不介绍了怎么开心怎么来,本篇暂时为了支持一位粉丝的疑惑安装的话没有特殊配置暂不介绍,一路安装即可叮!这里停一......
  • Git
    GitGit的实践场景备份,代码还原,协同开发,追溯问题代码的编写人和编写时间Git安装与常用命令下载地址:Git基本配置#设置用户信息gitconfig--globaluser.name“XXXX”gitconfig--globaluser.email“XXX@XXX”#查看配置信息gitconfig--globaluser.namegitc......
  • 基于SpringBoot+Vue+uniapp的职业高中智慧作业试题系统源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 【源码+论文】springboot师生共评的作业管理系统设计与实现
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql获取资料请私聊我2.2B/S结构B/S架构是一种基于互联网系统的软件系统开发架构,是现如今在软件系统开发中采用非常大量的一种软件系统结构。现如今B/S架构已经被大量使用,打破了C/S结构的结构,给基于网络结构的软件......
  • 【源码+论文】基于springboot的课程作业管理系统
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql获取资料请私聊我Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高......
  • linux创建github仓库并用git上传本地仓库到github仓库
    1.创建github仓库(1)点击右上角的头像(2)点击Yourrepositories(3)点击New(4)填写好Owner和Repositoryname点击AddaREADMEfile选择license,再点击Createrepository2.用git上传本地仓库到github仓库git工作流:(1)点击Code再点击Local查看github仓库地址(2)将git......
  • Git 命令大全:详细讲解与常见问题解决方案
    目录1.Git基础命令2.分支管理命令3.远程仓库管理命令4.标签管理命令5.其他常用命令6.总结Git是目前最流行的分布式版本控制系统,它使得团队协作和代码管理变得更加高效。本文将详细介绍Git的常用命令及其应用场景,并针对可能遇到的问题提供解决方案。1.Git......
  • 8.16 PTA练习
    7-1-11装箱问题假设有N项物品,大小分别为s1​、s2​、…、si​、…、sN​,其中si​为满足1≤si​≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品,顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,......
  • git command 工作中常用命令备忘录
    模拟目前工作流程在gitlabfork需要开发的项目到自己仓库分配一个工作任务(feature、improvment、bug)本地从个人仓库克隆项目gitclonehttp://mylocal/group/project本地添加对于远端项目gitremoteaddupstreamhttp://dev.xxx.io/group/project基于远端仓库切出本......
  • [Windows批处理]比对Git两个分支之间的差异,把有改动的文件复制到指定目录
    保存为git-diff-copy.bat@echooffREM[Windows批处理]比对Git两个分支之间的差异,把有改动的文件复制到指定目录setlocalenabledelayedexpansionREM1:设置被复制的git项目文件夹(尾部要加"\")setcopy_from=..\vue-vben-admin\REM2:设置复制的目标文件夹setcopy_to=%~dp0......