git pull时的冲突解决方式; git stash; git fetch
git fetch指令:
https://www.yiibai.com/git/git_pull.html
发现远端有更新,git pull时,如果你本地分支修改了东西,导致git pull有冲突,失败。这时可以有两种方式解决问题。
关于git pull的实验:
本地有分支branch1,对应远端的分支branch1, 两端状态相同。
当前工作区处于branch1,我更改一个文件file并保存,然后执行git pull,得到提示”Already up to date“; 然后,我执行git add file,然后,执行git pull,得到相同的提示;
然后,执行git commit -m“xx” 将我的修改进行commit,然后执行git pull,也得到同样的提示!
--- 也就是说, git pull完全没有起作用! ---原因: 远端没有更新,git pull不起作用!
本地有分支branch1,对应远端的分支branch1, 两端状态相同。然后,远端被人更新::
1)你当前工作区处于branch1,并修改file文件保存,不执行add, commit。
然后执行git pull,会提示冲突:
error: Your local changes to the following files would be overwritten by merge:
file1.txt
Please commit your changes or stash them before you merge.
Aborting
git pull命令虽然相当于git fetch 加 git merge,但是此时远端的最新代码并没有被fetch到你的本地仓库,即你的本地仓库和工作区都没有被更新。
2)你当前工作区处于branch1,并修改file文件保存,执行git add file,不执行commit。
然后执行git pull,会提示同上的冲突。
3)你当前工作区处于branch1,并修改file文件保存,执行git add file,执行git commit -m"comments"。然后执行git pull,提示:
CONFLICT (content): Merge conflict in file1.txt
Automatic merge failed; fix conflicts and then commit the result.
这时,你的命令行处于merging状态,同时,你的本地文件别git 修改,帮你标记出冲突的地方了。这时执行git status会提示:(即,修改了工作区的文件,并add ,commit之后,执行git pull时,才会执行merge动作。)

即,你可以
a) 执行git merge --abort取消这次git pull操作,执行后你本地文件不变,本地仓库的这个分支也不变;;
b) 或者,手动修改git 标记的冲突内容文件并保存,执行git add file以mark resolution, 然后,执行git status 发现:

然后,按照提示执行git commit 将你的merge后的文件commit到本地仓库就完成这次merge 啦。 这样有一个缺点,即合并冲突解决后,你再执行git status会发现你本地比远端多两个commit,这时因为你执行git pull之前已经做过git commit,这里为了解决冲突又做了一次,导致了你的本地内容虽然与远端一致但是commit记录不同步,,因此,还是不要直接在本地分支(该分支对应远端)上修改内容,而是先新建一个本地分支并在其上进行功能开发,开发完毕后进行 merge. (commit记录不同步好像影响不大,下文中的git stash就是先解决了冲突再commit)
c) 或者,执行git merge tool(please ref to: )
git pull提示冲突的情况对应上文中的1) 和 2)情况,即你没有git commit你本地的修改。可以又两种方法搞定:
1)放弃本地修改
让 本地仓库 代码覆盖 本地工作区 修改,然后更新远程仓库代码;
本地仓库 代码完全覆盖本地 工作区间,具体指令如下:
git checkout head . (注意: 别遗漏 "head" 后的 " ." )(执行后,你本地的缓存区域的内容也被抛弃了,如果你执行过git add的话)
有人画了下图:

然后更新远程仓库的代码就不会出现冲突了: git pull
2)用git stash
将本地修改的代码放在缓存区, 然后从远程仓库拉取最新代码,拉取成功后再从缓存区将修改的代码取出, 这样最新代码跟本地修改的代码就会混杂在一起, 手工解决冲突后, 提交解决冲突后的代码。
执行git pull提示冲突之后,执行
git stash,
然后,git pull就可以没有冲突了;
然后,git stash pop,将刚才缓存的内容merger到当前新拉下来的, 手动解决冲突,然后git add, git commit, git push.
git pull时的冲突解决方式; git stash; git fetch的更多相关文章
- (转)使用git stash解决git pull时的冲突
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...
- git merge git pull时候遇到冲突解决办法git stash
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...
- git pull 显示的冲突---解决办法git stash
git pull:显示本地仓库与远程仓库有冲突 Please, commit your changes or stash them before you can merge. Aborting 解决办 ...
- Oracle存储过程update受外键约束的主键值时完整性冲突解决方式
1.问题背景 尽管在数据库操作中我们并不提倡改动主键,可是确实在实际生活中有这种业务需求: 表A有主键KA,表B中声明了一个references A(KA)的外键约束.我们须要改动A中某条目KA的值而 ...
- 解决git pull时出现的几个问题
第1个问题: 解决GIT代码仓库不同步 今天在执行git pull时出现: 解决方法:执行git checkout -f,然后再执行git pull重新checkout 再执行git pull时就可以 ...
- Git应用--04遇到冲突解决办法git stash(转载)
git merge git pull时候遇到冲突解决办法git stash https://www.cnblogs.com/juandx/p/5362723.html 在使用git pull代码时,经 ...
- git pull时解决分支分叉(branch diverged)问题
git pull时出现分支冲突(branch diverged) $ git status # On branch feature/worker-interface # Your branch and ...
- ---解决git pull 后出现冲突的解决方法
0. git statusOn branch masterYour branch and 'origin/master' have diverged,and have 1 and 3 differen ...
- 关于git的文件内容冲突解决
虽然以前我很怕git冲突,包括以前的版本控制器SVN上的冲突,但是昨天我决定好好的面对它,不去怕它,下面是我的解决过程... 话说一天的早上,我和同事(称为A)都同步了网络上的代码,然而A在中途提交了 ...
随机推荐
- ent 基本使用七 Config
通过config 我们可以自定义表相关的选项 参考配置 package schema import ( "github.com/facebookincubator/ent" & ...
- SpringBoot要点之使用Actuator监控
Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看.统计等. 在pom文件中加入spring-b ...
- 网络编程——select介绍
一.select函数简介 select一般用在socket网络编程中,在网络编程的过程中,经常会遇到许多阻塞的函数,网络编程时使用的recv, recvfrom.connect函数都是阻塞的函数,当函 ...
- luoguP4173 残缺的字符串 FFT
luoguP4173 残缺的字符串 FFT 链接 luogu 思路 和昨天做的题几乎一样. 匹配等价于(其实我更喜欢fft从0开始) \(\sum\limits_{i=0}^{m-1}(S[i+j]- ...
- mysql初始
数据(data) : -描述事物的符号记录称为数据,符号既可以是数据,文字,图片,声音,语言等,符号都可以经过数字化后存入计算机中 - 计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录 ...
- ffmpeg结合SDL编写播放器(二)
我们将对帧数据做一些处理,比如将每一帧的 图像转为jpg或者bmp或者ppm等格式保存下来. 举例:在ffmpeg-2.8.8文件夹下编写test.c程序 /* test.c */ #include& ...
- python 获取文件本身的绝对路径
tester.py: import os print (os.path.dirname(__file__)) print (os.path.abspath(__file__)) print (os.p ...
- Fix multiple GPUs fails in training Mask_RCNN
Test with: Keras: 2.2.4Python: 3.6.9Tensorflow: 1.12.0 ================== Problem: Using code from h ...
- Lucene创建索引和索引的基本检索(Lucene 之 Hello World)
Author: 百知教育 gaozhy 注:演示代码所使用jar包版本为 lucene-xxx-5.2.0.jar 一.lucene索引操作 1.创建索引代码 try { // 1. 指定索引文件存 ...
- 【译文】走出Java ClassLoader迷宫 Find a way out of the ClassLoader maze
本文是一篇译文.原文:Find a way out of the ClassLoader maze 对于类加载器,普通Java应用开发人员不需要了解太多.但对于系统开发人员,正确理解Java的类加载器 ...