前言

工作两年多了,用git总会发生冲突。因为是嵌入式入的行一直在ubuntun里写代码 ,提交代码习惯了命令行敲命令。小乌龟软件据说很好用,后期学学。项目开发总遇到冲突,之前都是把自己的新写的代码拷出来。然后把修改的文件撤销,git pull拉代码。再把新代码写回去。为啥用这么土的方法呢?因为自己出身培训班,git、svn都是参加工作的时候接触的。面试的时候装杯说自己会用。遇到冲突了百度一下解决方法,也没 解决 明白。不是冲突没解决就是自己新写的代码没了。那时候刚入行工作任务又紧还得学别的技术,只能通过勤git pull来避免这个。实在绕不开就采用那中土方法。这一直是我心里的痛。如今南方已定,兵甲亦足。当奖率三军,挥师斩顽疾。

场景一、拉取远端分支代码时产生冲突

在这里插入图片描述
git pull后自动merge的时候提示了冲突

解决方案

1.git status
在这里插入图片描述
红色的代表有冲突
2.git diff 文件
在这里插入图片描述

查看冲突 <<<<<<< HEAD和=中间的是你自己的代码, ======= 和>>>>>>>中间的是其他人修改的代码。自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,= ,>>>>>>>这种标志。
3.git add 文件
在这里插入图片描述

改完后 的文件添加进暂存区
4.git commit
在这里插入图片描述
到此merger完成。代码已更新。想要 推送到远程分支的话 再git push。

场景二 、与远程分支都修改了同一个文件

在这里插入图片描述
git pull 的时候报这个错是因为别人跟你改动了同一个文件 git 不忍覆盖掉你的代码,让你处理好在pull。

解决方案

1.git stash
将你本地所有修改代码保存到临时堆栈区。
2.git pull
此时若有冲突重复场景一
3.git stash pop
将你之前保存的代码拉回到工作区,并且会自动merge。如果与新拉下来的代码有 冲突。那么重复场景一即可.

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐