Git 恢复丢失的stash
示例
如果仅弹出它,并且终端仍处于打开状态,则git stash pop在屏幕上仍将显示哈希值:
$ git stash pop[...]
Dropped refs/stash@{0} (2ca03e22256be97f9e40f08e6d6773c7d41dbfd1)
(请注意,git stash drop也会产生相同的行。)
否则,您可以使用以下命令找到它:
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
这将向您显示提交图提示中的所有提交,这些提交不再从任何分支或标记中进行引用-每个丢失的提交,包括您曾经创建的每个隐藏提交,都将在该图中。
找到所需的隐藏提交的最简单方法可能是将该列表传递给gitk:
gitk --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )
这将启动一个存储库浏览器,向您显示存储库中的每个提交,无论它是否可以访问。
您可以将其替换gitk为类似的内容,例如git log --graph --oneline --decorate,您更喜欢控制台上的图形而不是单独的GUI应用程序。
要发现隐藏提交,请查找以下形式的提交消息:
在somebranch上执行WIP :commithash一些旧的提交消息
知道所需提交的哈希之后,就可以将其作为存储应用:
git stash apply $stash_hash
或者,您可以使用上下文菜单中的gitk来创建您感兴趣的所有无法访问的提交的分支。之后,您可以使用所有常规工具对它们进行任何操作。完成后,只需将这些分支吹走即可。
以上是 Git 恢复丢失的stash 的全部内容, 来源链接: utcz.com/z/337925.html