首页 > 其他分享 >Git冲突分析及解决

Git冲突分析及解决

时间:2023-05-19 09:48:02浏览次数:32  
标签:git Git master 冲突 解决 commit txt 分支

Git冲突分析及解决

一、git pull时冲突

  • 解决完冲突以后,原来的一个commit,会变成两个,解决冲突的过程也会被提交为一个commit

1、git pull在commit后执行

1)情景

git branch 
# * b_b
#   master

git add b.txt
git commit -m 'update b_b a.txt'

git pull origin master   # 此时提示冲突

![image-20230517163132700](E:\typra_image\127. Git冲突分析\image-20230517163132700.png)

 

2)解决

git status

vim a.txt   # 打开冲突文件,处理冲突内容, 冲突内容被 <<<<< 和 >>>>>>包裹,前面的是当前分支的变更,后面的是其它分支提交的变更

git add a.txt
git commit -m 'fix conflict'
git push origin b_b   # 此时会把所有本地commit给push到远程仓库

 

2、git pull在commit前执行

1)情景

git branch 
# * b_b
#   master

git pull origin master   # 此时提示冲突

  • 根据提示可知,此时pull,远程的变更并没有merge到本地,需要commit后再进行pull

 

2)解决

git status


# 1. 根据上图提示,先将变更commit
git add a.txt
git commit -m 'b_b update a.txt'



# 2. 再次pull,使其能够merge远程变更到本地,此时会报冲突
git pull origin master



# 3. 解决冲突,参考1.的解决步骤
git status

vim a.txt   # 打开冲突文件,处理冲突内容, 冲突内容被 <<<<< 和 >>>>>>包裹,前面的是当前分支的变更,后面的是其它分支提交的变更

git add a.txt
git commit -m 'fix conflict'
git push origin b_b   # 此时会把所有本地commit给push到远程仓库

 

二、Web中merge冲突

1、两个分支都提交merge

1)情景

在两个分支合并前,都没有冲突

 

合并其中有一个分支,另一个分支的merge request提示有冲突

 

2)解决

方式一:在web中进行处理

由1)中可见有Resolve conflicts,可以在web中进行处理冲突

 

方式二:本地解决冲突

(1)用户没有有master分支push全选

  • 将最新的master分支合并到当前分支,处理冲突后push,web中的冲突可以被解决,此时可以继续在web中进行merge
git checkout master
git pull # 更新master分支

git checkout -b b_b origin/b_b   # 切换到b_b分支

git pull origin master   # 将最新的master分支版本和当前分支合并,此时可能会出现冲突

vim xxx.txt   # 解决冲突

git add xxx.txt
git commit -m 'fix conflict'
git push origin b_b

 

(2)用户有master分支权限

  • 将开发分支merge到master分支,解决冲突后push,此时直接就会merge,web中的merge request就会消失
git checkout master
git pull # 更新master分支

git merge b_b   # 将开发分支合并到master分支,此时可能会出现冲突

vim xxx.txt   # 解决冲突

git add xxx.txt
git commit -m 'fix conflict'
git push origin master

 

三、本地merge冲突

1)情景

git branch
# * b_b
#   master


git add a.txt
git commit -m 'update a.txt by b_b'

git checkout master
git pull   # 更新master分支到最新
git merge b_b  # 将b_b分支merge到master上,此时可能会有冲突

 

2)解决

vim a.txt   # 解决冲突

git add a.txt
git commit -m 'fix conflict'
git push origin master

 

标签:git,Git,master,冲突,解决,commit,txt,分支
From: https://www.cnblogs.com/linagcheng/p/17413994.html

相关文章

  • uniapp 解决app端视频滚动错误、首次加载黑屏的问题(包含后续的视频播放、下载)
    我的理解:出现app端视频滚动错误的原因是因为<video/> 组件在非H5端是原生组件,层级高于普通前端组件。首次加载黑屏的问题,我暂时还不知道原因我的解决方案:获取视频第一帧转成图片展示1、后端处理刚开始在网上搜索解决办法都是在将video组件更换为image组件,地址仍写video的地址,......
  • 【教程】Git代理配置
    ✨Git代理配置#httphttpsgitconfig--globalhttp.proxy127.0.0.1:7890gitconfig--globalhttps.proxy127.0.0.1:7890#socks5gitconfig--globalhttp.proxysocks5://127.0.0.1:7890gitconfig--globalhttps.proxysocks5://127.0.0.1:7890#取消代理gitco......
  • SolidCAM_2022_SP2 Mult for SolidWorks完整CAD/CAM解决方案
    SolidCAM_2022_SP2MultforSolidWorks:完整CAD/CAM解决方案SolidCAM_2022_SP2MultforSolidWorks是一款完整的CAD/CAM解决方案,它为SolidWorks用户提供了一种高效、准确和可靠的加工解决方案。SolidCAM_2022_SP2MultforSolidWorks具有强大的功能和易于使用的界面,可以帮助用户......
  • Keil_MDK中无法打开map文件的解决办法
    如果在MDK中打开map文件我们在STM32的开发过程中,经常会查看.map文件.map文件是MDK在编译过程中生成的一个包含镜像文件信息的重要文件,在程序编译后自动生成,比方这里我的工程下自动将.map文件生成到了与工程名同名文件夹下的Exe文件里面要想打开.map文件,直接在工程界面双击工程......
  • git ssh配置
    http://wenwl.site/pages/17c21d/#%E9%85%8D%E7%BD%AE%E7%A7%81%E9%92%A5 TortoiseGit使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。也就是说GitBash中使用命令ssh-keygen-trsa-C"这里换上你的邮箱" 生成的密钥在TortoiseGit中不能用。我们需要用到Tort......
  • [学习笔记]解决因C#8.0的语言特性导致EFCore实体类型映射的错误
    今天下午在排查一个EF问题时,遇到了个很隐蔽的坑,特此记录。问题使用ef执行Insert对象到某表时报错,此对象的Address为空:不能将值NULL插入列'Address',表'dbo.xxx';列不允许有Null值。INSERT失败。检查数据库和迁移文件时发现Address这个字段被意外设置成nullable:false,......
  • git 忽略文件配置,及忽略文件不生效解决方法
     .gitignore忽略文件,符合大多数要求##IgnoreVisualStudiotemporaryfiles,buildresults,and##filesgeneratedbypopularVisualStudioadd-ons.####Getlatestfromhttps://github.com/github/gitignore/blob/master/VisualStudio.gitignore#User-spec......
  • resources 文件没有编译到 target 文件中 解决办法
    IDEA一般提示 :java.lang.IllegalStateException:FailedtoloadApplicationContext仔细观察 target中 compile编译后的classes文件中缺少resources中的springXML容器 所以才会提示未能加载spring容器 解决办法1在ProjectStructure中 Modeulse菜单......
  • Web中实现文件上传下载的三种解决方案(推荐)
    ​ 上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。一开始以为是session过期或者文件大小受系统限制,导致的错误。查看了系统的配置文件没有看到文件大小限制,web.xml中seesiontimeout是30,我把它改成了120。但还是不行,有时候10分钟就崩了。同事说,可能是客户这里......
  • 使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践
    一、背景笔者在6月份加入新团队,新团队这边刚组建起来,基础一些东西还处于待完善状态,比如笔者组内同学约定使用PSR-2的编码风格规范,但是并不是所有人都严格按照PSR-2来提交代码。最大的原因就是口头的约束力极为有限,而团队中大家使用的编辑器不统一,有使用phpstorm,也有使用VSCode更有......