我有一个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
或者有更好的方法吗?
答案 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..."