in git, what ways are there to "lose" a commit in a way that you CAN'T recover using the reflog (so that you need to iterate over every single commit in the repository if you want to find it?

The only ways I know (using git's normal tools) are:

* using `git stash drop` or `git stash pop` to drop a stashed commit
* waiting 90+ days to try to recover the commit (so that it expires from the reflog)
* explicitly deleting the reflog in some way (rm -rf .git, git reflog expire, etc)

also: have you even run into a situation where git *completely deleted* a commit that you needed? (where it wasn't recoverable with the reflog or with `git fsck`)

only interested in things that have *actually happened to you*, not "this could theoretically happen if…”

I'm trying to think about whether there's any normal way for that to happen except if you completely delete your git repository.

@b0rk git didn't do it, I did it. A repo was stuck in a nasty rebase I thought was beyond repair, so I decided to replace the whole directory, including (accidentally) the .git dir, with an older copy on another disk. I thought this copy was more current than it actually was.