0.事先准备。
1)把远程仓库的README.md内容改写为bbb(原先为aaa)。

2)本地仓库的README.md内容改写为ccc(原先也为aaa)。

以此来模仿代码冲突。

  

1.先commit 再pull
pull的时候会提示有冲突,需要你进行手动merge

Accept Yours 就是直接选取本地的代码,覆盖掉远程仓库的

Accept Theirs 是直接选取远程仓库的,覆盖掉自己本地的

我们选择Merge,自己手动行进选择、修改。

这里左边部分是你本地仓库的代码,右边部分是远程仓库的代码,中间的result就是你修改之后的结果。左下角的Accept Left 和

Accept Right其实就相当于是之前的 Accept Yours 和 Accept Theirs  右下角的Apply是确认合并,Abort是取消合并。

我们在result中修改好自己想要merge的代码,然后点击Apply。

点yes.

这样我们就解决了冲突,解决完冲突后记得要再commit一次,分别更新本地和远程仓库的代码

这里我们可以选择commit and push

点击push

可以看到已经push成功了,此时我们再查看下远程仓库的README.md和本地仓库的README.md

 

确实都已经更新成功了。

2.有些同学喜欢先pull,再commit 和push
还是回到原来的事先准备,现在远程仓库的README为bbb,本地我改成ccc,这次先不commit,我们先来pull

pull的时候我们会发现右下角有提示说pull failed(这是肯定的啦,因为我们代码冲突了嘛)

我们选择项目右键--Git--Repository--Stash Changes

在Message中随便取个名字,然后点击Create Stash。

以上几步的操作,其实就是把你在本地做的改变,通过stash先在git栈中保存起来(因为你没有commit嘛,对比先commit再pull,你会发现 先commit再pull会比较方便,(commit操作就是类似于把改变先存起来吧。。个人理解、、))。

stash完后你会发现你本地进行的一些修改都已经不存在了,README文件也回到了之前的aaa(而不是修改后的ccc)

这样我们就可以和远程仓库合并了,(我们已经把冲突先去掉了)。git pull  顺利成功。

pull完以后我们查看README.md发现此时的内容就是远程仓库的bbb

 

现在我们再把之前保存的更改取出来

选择项目右键--Git--Repository--UnStash Changes

选择刚刚我们命名的那个更改记录,我这里就是第一个。

然后我们点Apply Stash,来到如下窗口,提示有代码冲突

有没有觉得这个这个窗口似曾相识!!

这跟我们先commit再pull  出来的窗口一模一样嘛!

我们直接选择Merge

又是似曾相识的感觉,有没有!(所以我个人感觉其实如果你没有先commit就pull的话,你就要通过stash和unstash把改变先保存起来然后再取出来,这一步其实就相当于commit吧(、、、我觉得这样理解没毛病~~))。

接下来要做的还是老样子,我们在result中修改自己想要合并的代码(但是我这里好像有个bug,result的代码改了之后都没了,不知道什么原因,之前先commit再pull到这一步就没有这个问题。所以我是在result中把本地和远程的代码都选上了)

然后我们点击Apply,把冲突解决。

别忘了commit和push。

push完我们查看远程仓库和本地仓库都更新成了bbb ccc

 

————————————————

原文链接:https://blog.csdn.net/qq_33039699/article/details/82866785

IDEA中解决 git pull 冲突的更多相关文章

  1. git pull 冲突解决

    这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来. 处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理. 1.先将本地修 ...

  2. git pull冲突解决

    场景:用户UserA修改了文件File1,用户UserB也修改了文件File1并成功merge到了服务器上,而UserA和UserB改动了同一个代码块,当UserA拉取代码时git无法merge此改动 ...

  3. (转)使用git stash解决git pull时的冲突

    在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...

  4. ---解决git pull 后出现冲突的解决方法

    0. git statusOn branch masterYour branch and 'origin/master' have diverged,and have 1 and 3 differen ...

  5. eclipse中解决git分支合并冲突

    冲突场景: 在master分支上有文件student.py. 在master上增新一个dev分支 在dev分支上修改文件student.py.增加函数def d():,并commit; 在master ...

  6. git pull 冲突拉取不到新的代码

    本地文件已经有冲突或者在pull的过程中拉取的文件和本地文件冲突时,拉取不到新的代码,git pull出现报错,如下: 这个时候,如果你有两种选择,如果你需要这些改动,那个你就需要手动解决冲突,然后a ...

  7. git fetch and git pull &冲突

    1.git fetch和git pull之间的区别 git fetch只会将本地库所关联的远程库的commit id更新至最新,fetch不会改变代码,如果想使代码更新,需要使用git merge o ...

  8. git pull冲突的解决方案

    处理步骤: 1.先将本地修改存储起来 $ git stash 这样本地的所有修改就都被暂时存储起来 .使用git stash list可以看到保存的信息: git stash暂存修改 其中stash@ ...

  9. git pull冲突:commit your changes or stash them before you can merge.

    今天用git pull来更新代码,遇到了下面的问题: error: Your local changes to the following files would be overwritten by ...

随机推荐

  1. 系统命令模块subprocess

    系统命令 可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* --废弃 commands.* --废弃,3.x中被移除 ...

  2. python-pillow图像处理

    安装 pip3 install pillow PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(pal ...

  3. node.js模块中exports和module.exports的区别

    Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文件不可见. CommonJS规范规定 ...

  4. linux操作目录命令之mkdir与rmdir

    一.mkdir  创建目录(一个或多个目录) mkdir -m 777 -p path 1)-m  对新建目录设置权限 2)-p  可以是一个路径名称.此时若路径的某一级目录尚不存在,使有该选项后系统 ...

  5. input框与img在同一行对齐

    将input和img放同一行,img标签总是比input高出一个头,难看.后来在网站搜到最多的就是给img添加一个align="absmiddle"属性,这个方法似乎的确可行,但是 ...

  6. BZOJ1491 Red is good

    题目链接:Click here Solution: 考虑设\(f(i,j)\)表示当前还有\(i\)张红牌,\(j\)张黑牌时的期望收益 易得状态转移方程:\(f(i,j)=\frac{i}{i+j} ...

  7. max pool实现

    题目 二维矩阵(nm) 求每个(lw)的子矩阵的最大元素, 就是一维滑动窗口的升级版 自己瞎掰的题解 #include <bits/stdc++.h> using namespace st ...

  8. Python爬虫黑科技(经验)

    "作为一名爬虫工程师,你最需要关注的,是数据的来源" 原文:https://www.jb51.net/article/90114.htm 霍夫曼编码压缩算法 1.最基本的抓站   ...

  9. shell变量与运算

    shell变量与运算 @(0003 shell编程) 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不 ...

  10. linux下vsftpd的安装及配置使用详细步骤(推荐)

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...