您的位置:首页 > 汽车 > 新车 > git stash Pop 后丢失,要如何找回?

git stash Pop 后丢失,要如何找回?

2024/7/2 15:28:13 来源:https://blog.csdn.net/shenjing_Shining/article/details/139788972  浏览:    关键词:git stash Pop 后丢失,要如何找回?

文章目录

  • 须知
  • 背景描述
  • 解决过程

须知

写在前面:我们都知道 stash list 中如果 pop 出来一条,那 list 里就会少一条,但其实使用 git stash pop 并没有真正地将该条 stash 删掉的,而是删除引用而已,因此当我们误 pop 时,我们可以使用 git fsck 命令进行找回~

背景描述

在一次工作中,我不小心误操作,把本地存好的 stash pop 出来后,又 revert 掉了,当时没反应过来,反应过来后顿觉天昏地暗,里面有前一天和当天上午的代码,改的是响应式的调整,要是没了岂不是都白做了… 虽然之前还没找回过丢失的 stash,但我要求自己冷静,大脑飞速运转,想了下觉得 git 其实应该很智能,哪怕 stash list 里没有了,也不会真的删除,于是我开始上网查和问同事,网上确实有相关的帖子告知如何找回,于是开始按帖子尝试!

解决过程

  1. 通过
git fsck --unreachable  // 该命令查找所有 unreachable 记录

git fsck --lost-found

两条命令其中的一条来进行查询,这里我使用的是 git fsck – lost -found,
查询出结果如下:
在这里插入图片描述

然后通过 git show+[SHA] 一条一条的对commit的记录进行查看,SHA 对应的就是 commit Id,即每条 commit 后的那一串字母与数字的组合
在这里插入图片描述

注意
这里的 commit 是无序的,你也不知道你丢失的那条 stash 的 commitId 是啥,所以只能一条一条 git show commitId 去查看!

show 出来的内容顶部会有提交的时间,stash 名称和提交的文件内容,直接都展示出来,如何快速地查找记录?我因为清楚地知道我这条 stash 是啥时候加的,所以一看时间和名称不是,就直接下一个了。

当你查看到时你丢失的那条记录时,拿着这条 commitId,进行 git statsh apply commitId 的操作,就可以在本地找回丢失的这条 stash。

记录一下,希望能帮到更多的人,以后自己再遇到也知道怎么做了~

遇事千万不能慌啊~

参考连接:

https://www.jianshu.com/p/59f30cc47db1
https://zhuanlan.zhihu.com/p/660023218
https://blog.csdn.net/qq_62947569/article/details/135385393
https://www.jianshu.com/p/59f30cc47db1
https://blog.csdn.net/CSDN_wcy/article/details/137117625

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com