目录

  • 一、事先准备
  • 二、先commit再pull
  • 三、先pull再commit

一、事先准备

现在Giee 码云上面建立一个仓库(我这里事先建立好的hello_world01 远程仓库的)

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键

在本地建立两个文件夹,用来模拟不同的用户(没办法啦,只有一台电脑)

Idea pull Template 下的代码有蓝色 idea pull代码冲突_远程仓库_02

然后在分别在测试用户A、测试用户B里面拉取远程hello_world01 远程仓库下来。如下图所示

Idea pull Template 下的代码有蓝色 idea pull代码冲突_git_03

Idea pull Template 下的代码有蓝色 idea pull代码冲突_git_04

二、先commit再pull

1、在测试用户A文件目录里面,修改README.md文件,然后commit , push 提交到gitee远程仓库。此时再远程仓库就可以看了,用户A的修改了。

Idea pull Template 下的代码有蓝色 idea pull代码冲突_远程仓库_05

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_06

2、同样的,测试用户B也修改README.md文件,如下图。

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_07

3、然后在测试用户B中,先commit再pull,会提示冲突,点击Merge,解决冲突即可,最后再push到远程仓库。

Idea pull Template 下的代码有蓝色 idea pull代码冲突_远程仓库_08

4、再去远程仓库,就可以看到push提交的记录了。

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_09

三、先pull再commit

1、回到原来的事先准备,同样的在测试用户A,修改README.md文件,commit , push 提交到远程仓库。

2、测试用户B也修改README.md文件。

3、这次先不commit,我们先来pull,接着右下角会提示。(这是肯定的啦,因为我们代码冲突了嘛,拉取不下来。)

Idea pull Template 下的代码有蓝色 idea pull代码冲突_git_10

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

Idea pull Template 下的代码有蓝色 idea pull代码冲突_git_11

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

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_12

以上几步的操作,其实就是把你在本地做的改变,通过stash先在git栈中保存起来。

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

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

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

现在我们再把之前保存的更改取出来,选择项目右键--Git--Repository--UnStash Changes

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_13

然后我们点Apply Stash,来到如下窗口,提示有代码冲突。最后再commit ,push 提交到远程仓库。

Idea pull Template 下的代码有蓝色 idea pull代码冲突_右键_14

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