当前位置:   article > 正文

350-git推送代码冲突解决实际方案_get推送有冲突怎么查看区别并修改提交

get推送有冲突怎么查看区别并修改提交

git推送代码冲突解决实际方案

在这里插入图片描述
小张和阿亮2人git协作时,先git pull一下,获取最新的代码!

然后小张修改了代码,将本地仓库改为v2,提交到远程仓库,将远程仓库也改为v2!

问题: 在小张从v1变为v2,并将代码推送到远程仓库时,别人也可能更新了代码!比如阿亮将本地仓库代码改为V3,现在准备push到远程时就是出错,因为远程此时为V2,而阿亮是在V1的基础上进行修改的!


也有可能啊亮先更新代码为V3,此时小张也更新了代码,但是此时远程仓库已经变为V3了,小张还是在V1的基础上更新的代码,怎么办?
在这里插入图片描述
如果小张直接将V2代码推上去,结果就是V3的代码全没了!

现在这种情况想直接推送V2到远程仓库时推送不了的!


在这里插入图片描述
git pull从远程仓库更新最新代码下来!

小张在Win10上操作:
修改代码!
在这里插入图片描述
将代码添加到本地仓库中:

在这里插入图片描述

项目组可能有很多人,在小张还没有将本地修改的代码推送到远程仓库时,就已经将自己修改的代码推送到远程上去了!(这里在ubuntu演示啊亮操作)
在这里插入图片描述
阿亮将工作区修改的代码推送本地仓库!
在这里插入图片描述
注意阿亮也是就与V1版本的仓库修改的!
在这里插入图片描述
阿亮推送也是没有问题的!

现在本地仓库和远程仓库都是在啊亮提交的代码版本V3上:
在这里插入图片描述


记着我们小张再操作自己的V2版本代码!

小张将V2版本的代码推送到远程仓库中:
在这里插入图片描述
出现错误!

现在想把本地仓库的代码推送到远程仓库上去,不行,因为本地代码是基于V1代码修改的!现在远程仓库已经是啊亮提交的V3版本的代码了!不可能直接将V2版本的代码放上去,会将V3版本弄丢的!

V2版本应该基于V3版本进行修改!

解决方法:

我们可以看到在提交代码失败时,系统提醒我们更新下代码,从远程仓库中重新拉取:
在这里插入图片描述

在这里插入图片描述
在更新代码的同时,自动进行了代码的合并!

在这里插入图片描述
因为这两处修改的地方不是一个地方,在合并时,git就直接进行合并了!

合并之后,直接推送到远程仓库即可:
在这里插入图片描述
阿亮再git pull,可以拿到合并后的代码:
在这里插入图片描述
在这里插入图片描述
可以看到此时本地仓库和远程仓库都位于合并代码处!


另外一种冲突:需要手动解决

小张和阿亮改同一个地方!

原始的:
在这里插入图片描述

小张修改代码:

在这里插入图片描述

git diff HEAD -- 查看工作区file文件和仓库中该文件最新版本的代码有什么区别
  • 1

可以查看工作区修改的文件和远程仓库有什么区别:
在这里插入图片描述
在这里插入图片描述
红色-: 表示原来的代码;
绿色+: 表示修改的绿色代码;

小张接着将其提交到本地仓库中:
在这里插入图片描述
此时本地仓库时先与远程仓库的,可以直接push上去:
在这里插入图片描述
但是,现在还没有push到远程仓库!


阿亮接着修改代码:

也在sort函数中添加了算法优化代码!
在这里插入图片描述
查看其和远程仓库的区别代码:
在这里插入图片描述

阿亮将代码提交到本地仓库:

在这里插入图片描述
阿亮将代码push到远程仓库:是Ok的!
在这里插入图片描述
在这里插入图片描述
问题:

此时小张的代码还没有提交,它是基于仓库最开始的代码V1开始的,它自己是V2;

但是此时阿亮将自己的V3代码提交到远程仓库中了!

此时小张要是push代码代码到远程仓库,会发生冲突!
在这里插入图片描述
小张git pull将最新的代码拉下来!
在这里插入图片描述
也是会进行了一个自动的代码合并!

检查下自动合并的代码是否正确:

在这里插入图片描述
此时是没有问题的,可以自动合并,因为改的不是同一个地方;

可以push上去了:
在这里插入图片描述

这里老师举例差评,没有体现要自己手动修改的案例!


重新演示:

git pull,让两个人的代码都是最新的!

在这里插入图片描述

小张在README文件中修改:

在这里插入图片描述

小张将工作区的文件添加到本地仓库!还没有推送到远端!
在这里插入图片描述
阿亮现在修改代码:

和小张在同一个地方进行修改!
在这里插入图片描述
在这里插入图片描述
阿亮直接将代码提交到远程仓库中!

小张再进行push时,会出错:
在这里插入图片描述
现在再git pull,发现自动合并代码失败:(因为是修改的同一处代码,不知道如何合并!)
在这里插入图片描述
提示我们 需要手动解决冲突!
在这里插入图片描述
查看下现在的README文件:
在这里插入图片描述
commit ID就是其他人修改的,可以使用git log 进行查看,就是阿亮提交的!

手动进行修改合并:
在这里插入图片描述
在这里插入图片描述
然后进行提交:

在这里插入图片描述
OK了!
在这里插入图片描述
远程仓库OK的!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号