博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git pull遇到的问题
阅读量:6348 次
发布时间:2019-06-22

本文共 1899 字,大约阅读时间需要 6 分钟。

今天遇到了一个git pull 更新代码的错误,提示我更新失败,把本地更改的代码保存或者上传之后再更新。于是我就在网上搜了一下找到了两种解决办法,在这了总结一下

error: Your local changes to the following files would be overwritten by merge:复制代码

解决方法1: 如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)

git stashgit pull origin mastergit stash pop复制代码

git stash 命令可以将在当前分支修改的内容放到缓存区中,并会自动建立一个缓存的list集合,方便管理。

如果想将修改的内容重新释放出来,git stash apply 和 git stash pop 都可以达到这个目的。

但是两者有什么区别呢。

刚才说过,git stash 可以形成list 集合。通过git stash list 可以看到list下的suoy

使用git stash apply @{x} ,可以将编号x的缓存释放出来,但是该缓存还存在于list中

而 git stash apply,会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录还存在list中

而 git stash pop,也会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录不存在list中

如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add,commit,push 命令即可更新本地代码到服务器了。

解决方法2: 如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull

git reset --hardgit pull origin master复制代码
  1. 假设有2个提交记录
commit def5adef853da4cc05752bdb36577c127be71ba5Author: 132982jianan <1072772483@qq.com>Date:   Thu Dec 28 16:01:36 2017 +0800    add data to 1.txtcommit f36801544670e00b2f59a28e19017d2786c4085eAuthor: 132982jianan <1072772483@qq.com>Date:   Thu Dec 28 15:59:46 2017 +0800复制代码
init 1.txt复制代码

(END)

  1. 现在回到最开始的那一个提交 git reset --hard f36801544670e00b2f59a28e19017d2786c4085e

  2. 查看日志,就会发现只剩下一个提交了

git logcommit f36801544670e00b2f59a28e19017d2786c4085eAuthor: 132982jianan <1072772483@qq.com>Date:   Thu Dec 28 15:59:46 2017 +0800init 1.txt复制代码

(END)

  1. 这个时候,发现回退版本错了,那么就用git reflog查看提交记录
git reflogf368015 HEAD@{0}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085edef5ade HEAD@{1}: reset: moving to def5adef368015 HEAD@{2}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085edef5ade HEAD@{3}: commit: add data to 1.txtf368015 HEAD@{4}: commit (initial): init 1.txt复制代码
  1. 找出想要回退的版本,进行回退

    恢复 git reset --hard def5ade

  2. git reset --hard 和 git reset --sort区别

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;复制代码

转载地址:http://jgtla.baihongyu.com/

你可能感兴趣的文章
程序员第二定律:量化管理在程序员身上永无可能
查看>>
ubuntu一些脚本的执行顺序
查看>>
类继承的结构
查看>>
Intel 被 ARM 逼急了
查看>>
testng + reportng 测试结果邮件发送
查看>>
神操作:如何将Vim变成一个R语言IDE
查看>>
百度亮相iDASH,推动隐私保护在人类基因组分析领域的应用
查看>>
Python「八宗罪」
查看>>
你的隐私还安全吗?社交网络中浏览历史的去匿名化
查看>>
NeurIPS 2018|如何用循环关系网络解决数独类关系推理任务?
查看>>
Windows 10 份额突破 40%,Windows 7 连跌四月终回升
查看>>
怎么把Maven项目转为动态Web项目?
查看>>
Arm发布Cortex-A76AE自动驾驶芯片架构,宣示车载系统市场主权
查看>>
FreeBSD ports中make可带有的参数(转)
查看>>
Hibernate入门教程
查看>>
Java支付宝扫码支付[新]
查看>>
SpringMVC 拦截器 筛选
查看>>
CronExpression介绍
查看>>
第十八章:MVVM(八)
查看>>
点击表头切换升降序排序方式
查看>>