When the situation arises that you've dropped a git stash that shouldn't have dropped. Or that a stash is no longer there, you might be able to save your work with:
git fsck |grep "dangling commit" |cut -d' ' -f3 | xargs git show -s
(master)> touch a b c
(master)> git add a b c
(master +)> git stash
Saved working directory and index state WIP on master: 977c526 C
(master)> git stash list
stash@{0}: WIP on master: 977c526 C
(master)> git status
On branch master
nothing to commit, working tree clean
(master)> git stash drop
Dropped refs/stash@{0} (9fc881f0854ed60c052608e9e96754a90f22ea22)
(master)> git fsck
Checking object directories: 100% (256/256), done.
dangling commit 9fc881f0854ed60c052608e9e96754a90f22ea22
dangling commit 2dae0f4d0172e30bf8425855262acb058aa44c67
(master)> git fsck |grep "dangling commit" |cut -d' ' -f3 | xargs git show -s
Checking object directories: 100% (256/256), done.
commit 9fc881f0854ed60c052608e9e96754a90f22ea22
Merge: 977c526 2755185
Author: Goes Sepouse <[REDACTED]>
Date: Thu Jun 30 09:25:07 2022 +0200
WIP on master: 977c526 C
commit 2dae0f4d0172e30bf8425855262acb058aa44c67
Merge: 5887685 3811c3a
Author: Goes Sepouse <[REDACTED]>
Date: Thu Jun 30 09:21:47 2022 +0200
WIP on master: 5887685 A
(master)> git stash list
(master)> git checkout 9fc881f0854ed60c052608e9e96754a90f22ea22 -b salvation
Switched to a new branch 'salvation'
(salvation)> ls
a b c greetings
(salvation)>
This great book: git from the bottom up