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的更多相关文章

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

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

  2. git merge git pull时候遇到冲突解决办法git stash

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

  3. git pull 显示的冲突---解决办法git stash

    git pull:显示本地仓库与远程仓库有冲突 Please, commit your changes or stash them before you can merge. Aborting 解决办 ...

  4. Oracle存储过程update受外键约束的主键值时完整性冲突解决方式

    1.问题背景 尽管在数据库操作中我们并不提倡改动主键,可是确实在实际生活中有这种业务需求: 表A有主键KA,表B中声明了一个references A(KA)的外键约束.我们须要改动A中某条目KA的值而 ...

  5. 解决git pull时出现的几个问题

    第1个问题: 解决GIT代码仓库不同步 今天在执行git pull时出现: 解决方法:执行git checkout -f,然后再执行git pull重新checkout 再执行git pull时就可以 ...

  6. Git应用--04遇到冲突解决办法git stash(转载)

    git merge git pull时候遇到冲突解决办法git stash https://www.cnblogs.com/juandx/p/5362723.html 在使用git pull代码时,经 ...

  7. git pull时解决分支分叉(branch diverged)问题

    git pull时出现分支冲突(branch diverged) $ git status # On branch feature/worker-interface # Your branch and ...

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

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

  9. 关于git的文件内容冲突解决

    虽然以前我很怕git冲突,包括以前的版本控制器SVN上的冲突,但是昨天我决定好好的面对它,不去怕它,下面是我的解决过程... 话说一天的早上,我和同事(称为A)都同步了网络上的代码,然而A在中途提交了 ...

随机推荐

  1. UNICODE和UCS

    Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.目前的Unicode字符分为17组编排,0x0000 至 0xFFFF,每组称为平面(Plane),而每平面拥有65536个码 ...

  2. 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& ...

  3. Gcd HYSBZ - 2818 (莫比乌斯反演)

    Gcd \[ Time Limit: 10000 ms\quad Memory Limit: 262144 kB \] 题意 求 \(gcd\left(x,y\right) = p\) 的对数,其中\ ...

  4. CF 900D Unusual Sequences

    题目链接 \(Description\) 给定\(x,y\),求有多少个数列满足\(gcd(a_i)=x且\sum a_i=y\).答案对\(10^9+7\)取模. \(1≤x,y≤10^9\) \( ...

  5. GoCN每日新闻(2019-11-08)

    GoCN每日新闻(2019-11-08) GoCN每日新闻(2019-11-08) 1. Go Modules: v2及更高版本使用 https://blog.golang.org/v2-go-mod ...

  6. X-factor Chain(信息学奥赛一本通 1628)

    题目描述 输入正整数 x,求 x 的大于 1 的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数. 输入 多组数据,每组数据一行,包含一个正整数 x. 对于全部数据 ...

  7. shell 查找字符串中字符出现的位置

    #!/bin/bash a="The cat sat on the mat" test="cat" awk -v a="$a" -v b=& ...

  8. 「HNOI2015」亚瑟王

    传送门 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟 ...

  9. 提前体验让人"回归Windows怀抱"的Windows Terminal

    前言 在一年一度的微软开发者大会Build 2019登场的Windows Terminal饱受好评,大家对其也是充满了兴趣和热情,程序员的朋友圈都被微软发布的最新终端 windows Terminal ...

  10. SAS 获取系统选项设置的过程步 PROC OPTIONS OPTION=()

    PROC OPTIONS OPTION=(VALIDVARNAME LS);RUN;