Press "Enter" to skip to content

Git 误删了stash 怎么恢复

转自:(23条消息) git stash drop 误删恢复_RayPick的博客-CSDN博客_git stash 恢复

场景: 保存了stash 提交了分支 后 错误使用git stash drop 之前的修改不见了

场景
代码正在开发中不想commit,但是要切换其它commit或branch去处理临时紧急任务,于是用git stash 备份当前的工作区的内容。
切换回来时不小心使用了 git stash drop ,于是暂存的修改全没了。

方法一
自己知道删除的ID号

然后通过命令git fsck –lost-found找到最近的一些删除的提交,找到9c8223*,然后git show 9c8223查看修改情况,git stash apply 9c8223即可修复删除掉的内容。

方法二
不知道删除的ID号但是大概记得自己修改了哪些内容

步骤一:把修改内容存入文件

git fsck –lost-found >> 1.txt

git fsck –unreachable >> 2.txt
1
2
3
然后两个文件的内容格式如下

步骤二:筛选指定的信息并记住ID,利用脚本快速定位查找

!/bin/sh

READFILENAME=”1.txt” #上步文件名【1.txt dangling commit,2.txt对应unreachable commit】
RETFILENAME=”./ret.txt” #筛选结果文件名
while read -r line
do
VAR=echo $line | awk '/dangling commit/ {print $3}'
if [ $VAR ]; then
git show $VAR >> $RETFILENAME
echo “————————————-\n” >>$RETFILENAME #每条记录用—分割开
fi
done < $READFILENAME
1
2
3
4
5
6
7
8
9
10
11
步骤三: 根据执行结果找回删除的代码

我删除的是commit 9c8223257bb39c4975d3407fbfde72241eb76de6

所以直接 git stash apply 9c8223257bb39c4975d3407fbfde72241eb76de6即可完成恢复
————————————————
版权声明:本文为CSDN博主「RayPick」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44388689/article/details/120076830

发表评论