Visual Studio执行Stash All后更改丢失且无stash可恢复,如何找回?
找回Visual Studio中丢失的Stash内容
先通过Git原生命令排查悬空提交:打开终端(Visual Studio内置终端或系统终端都可以),进入仓库所在目录,运行:
git fsck --no-reflog | awk '/dangling commit/ {print $3}'这个命令会列出仓库里所有未被引用的悬空提交,你之前的stash内容大概率在这些提交里。
逐个查看悬空提交的内容:对上面输出的每个提交哈希值,运行:
git show <提交哈希>对比内容找到你丢失的那组更改。
恢复找到的提交:如果确认了目标提交,直接用以下命令恢复到当前分支:
git stash apply <提交哈希>或者用
git cherry-pick <提交哈希>把提交合并到当前分支。找回untracked文件:因为你用了
--include-untracked,未跟踪文件会被打包成单独的blob对象,运行以下命令列出所有悬空blob:git fsck --no-reflog | awk '/dangling blob/ {print $3}'用
git show <blob哈希>查看内容,确认是需要的文件后,用重定向保存:git show <blob哈希> > 文件名.扩展名注意:只要仓库没有执行过
git gc(垃圾回收),这些悬空对象就不会被清理,所以尽快操作成功率更高。
内容的提问来源于stack exchange,提问作者TheEvilMetal
相关产品推荐
相关产品推荐

