当前位置: 首页 >服务端 > Git冲突与解决方法

Git冲突与解决方法

1、git冲突的场景

  • 情景一:多个分支代码合并到一个分支时;
  • 情景二:多个分支向同一个远端分支推送代码时;

实际上,push操作即是将本地代码merge到远端库分支上。

关于push和pull其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支

所以这两个过程中也可能存在冲突。
 
git的合并中产生冲突的具体情况:
  <1>两个分支中修改了同一个文件(不管什么地方)
  <2>两个分支中修改了同一个文件的名称
两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

2、冲突解决方法

  • 情景一:在当前分支上,直接修改冲突代码--->add--->commit。
  • 情景二:在本地当前分支上,修改冲突代码--->add--->commit--->push

 注:借用vim或者IDE或者直接找到冲突文件,修改。

 

3、实战演示

(1)情景

  本地库中两个不同分支,修改同一个文件同一代码块,两分支先后将修改合并到master分支上,master在合并第二个分支代码时,报错:合并冲突。

 

(2)本地库

<1>master分支

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

<2>建立两个分支

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

<3>两分支修改提交

aBranch分支:

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

bBranch分支:

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

 

(3)合并分支产生冲突

合并aBranch分支(将aBranch分支合并到当前master分支上):

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

注:
git merge:默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,建议采用这种方法。

再合并bBranch分支,产生冲突:

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

mergeTest.txt 文件内容:

 

(4)解决冲突

--->在当前分支上(master),找到冲突文件,直接修改冲突代码,add,commit。

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

 注:简单方法,使用vim修改,cat查看冲突文件。(注意要删除git自动生成的冲突代码分隔符)

(5)完成冲突解决

Git冲突与解决方法 _ JavaClub全栈架构师技术笔记

注:提交或者合并都会生成git节点。每个节点对应一个代码版本。

 

作者:马非白即黑
来源链接:https://www.cnblogs.com/gavincoder/p/9071959.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112117.html

标签:解决办法
分享给朋友:

“Git冲突与解决方法” 的相关文章