本地修改的文件,使用git stash暂存之后不小心将暂存区清空,重新找回之前被暂存的文件

概述

问题

日常使用git 时,将本地所做的修改使用git stash暂存,使用git pull拉取代码之后,之间用git stash clear将git stash暂存的内容删除掉了。本文讲述如何恢复git stash clear掉的暂存区代码。

解决方法

执行指令

  1. git log --graph --oneline --decorate $( git fsck --no-reflog | awk ‘/dangling commit/ {print $3}’ )

  2. git stash apply 编号

案例

按照上述的顺序操作,输入指令后回车。

  1. 输入指令

git log --graph --oneline --decorate $( git fsck --no-reflog | awk ‘/dangling commit/ {print $3}’ )

上述指令直接拷贝,然后回车,不需要做任何改动。
执行完之后,会出现如下的列表:
在这里插入图片描述
在上述出现的列表中找到可能存在自己所做修改的那行描述,拷贝前面的黄色编号。
如:我在暂存”添加需要展示的中心线列表的信号槽绑定及函数“时可能当时自己所做的修改存在,我已经忘记了,为了安全起见,我选择这行描述的下一行,”优化斑块“,故而我的指令是:

git stash apply b20ea19

  1. 输入指令

git stash apply b20ea19

但是回车后报错,可以看到下面的图片:
在这里插入图片描述
使用git stash list查看暂存区的内容。发现git stash list之后什么也没有。
在这里插入图片描述
于是,再使用指令git stash 暂存。这里之所以再暂存,是因为执行完git stash apply b20ea19报错原因是由于报错中提到的两个冲突文件(之前冲突的文件,现在已经不冲突)
暂存之后,接着执行

git stash apply b20ea19

可以看到,执行完之后,没有报错。且找到了之前删掉的在暂存区的文件。

附加收获

  1. 清空暂存区

git stash clear

  1. 暂存修改的文件

git stash

3.拉取最近的暂存

git stash pop

4.恢复被清除的暂存区文件

git log --graph --oneline --decorate $( git fsck --no-reflog | awk ‘/dangling commit/ {print $3}’ )
git stash apply 编号

这里的编号,是第一行指令回车后,根据自己的文本描述,定位自己之前没有被删除的文件所在的编号。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肩上风骋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值