查找丢失的git stash

时间:2017-03-02 14:21:16

标签: git awk

我有一个git藏匿我昨天意外丢弃,现在我想恢复它。问题是,我再也找不到了。

我试图获取所有悬挂提交的列表:

git fsck --no-reflog | awk '/dangling commit/ {print $3}'

这给了我一个很长的sha1列表。但是我怎么能和他们的父母一起讨论这些提交的差异呢?我在考虑使用xargs,但我不确定如何在xargs中使用awk命令的输出(如何引用SHA1_OUTPUT

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git diff SHA1_OUTPUT^ SHA1_OUPUT

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

当我偶然清理藏匿袋时发生过这种情况。我只关心一个太重要而不能松动的藏品,由于它的文件名,我恢复了它。

实际上,如果您记得要恢复的文件名,可以运行

  git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git show

然后您会看到修改后的文件以及修改后的内容。通过依赖搜索功能(/),您可以查找记住的文件,并且您将看到修改,如果它们匹配,您可以获取哈希并将其恢复

git reset <stash_hash>^

为什么不再藏匿:D

git stash save "Stash my lost stash..."