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)

@b0rk git runs gc automatically, in some configurations more often. You may get unlucky to have the commit gc’d quick.
@pointlessone has that happened to you?
@b0rk I believe so, yes. I'm hazy on the details. I don't know whether reflog was involved in any way. But I’m pretty sure I've lost some commits to gc after rebase.