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在中途提交了 ...
随机推荐
- UNICODE和UCS
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.目前的Unicode字符分为17组编排,0x0000 至 0xFFFF,每组称为平面(Plane),而每平面拥有65536个码 ...
- matlab基础向7-8:画图
1.画直角坐标系的二维图 画直线: x1=[1 2 3]; y1=[4 5 6]; plot(x1,y1);%斜率为1的直线,穿过(1,4)(2,5)(3,6) 画抛物线y=x*x(-3<=x& ...
- Gcd HYSBZ - 2818 (莫比乌斯反演)
Gcd \[ Time Limit: 10000 ms\quad Memory Limit: 262144 kB \] 题意 求 \(gcd\left(x,y\right) = p\) 的对数,其中\ ...
- CF 900D Unusual Sequences
题目链接 \(Description\) 给定\(x,y\),求有多少个数列满足\(gcd(a_i)=x且\sum a_i=y\).答案对\(10^9+7\)取模. \(1≤x,y≤10^9\) \( ...
- GoCN每日新闻(2019-11-08)
GoCN每日新闻(2019-11-08) GoCN每日新闻(2019-11-08) 1. Go Modules: v2及更高版本使用 https://blog.golang.org/v2-go-mod ...
- X-factor Chain(信息学奥赛一本通 1628)
题目描述 输入正整数 x,求 x 的大于 1 的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数. 输入 多组数据,每组数据一行,包含一个正整数 x. 对于全部数据 ...
- shell 查找字符串中字符出现的位置
#!/bin/bash a="The cat sat on the mat" test="cat" awk -v a="$a" -v b=& ...
- 「HNOI2015」亚瑟王
传送门 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟 ...
- 提前体验让人"回归Windows怀抱"的Windows Terminal
前言 在一年一度的微软开发者大会Build 2019登场的Windows Terminal饱受好评,大家对其也是充满了兴趣和热情,程序员的朋友圈都被微软发布的最新终端 windows Terminal ...
- SAS 获取系统选项设置的过程步 PROC OPTIONS OPTION=()
PROC OPTIONS OPTION=(VALIDVARNAME LS);RUN;