How do I find a lost commit when I don't know the hash?
Search messages with --all --grep, search dates with --since/--until, or list unreachable objects with git fsck --unreachable and git show each candidate.
Do it now:
git log --all --grep='error message' --oneline git fsck --unreachable
Need more than the one-liner?
This answer covers one scenario out of dozens. The Git Rescue Field Guide collects all 52 recovery situations — resets, rebases, dropped stashes, forced pushes, scrubbed history — each with the exact command and the gotchas that bite afterwards.
More rescues: How do I recover a deleted branch in Git? · How do I undo git reset --hard? · How do I recover lost commits after a rebase? · How do I undo a commit I already pushed? · How do I recover a dropped stash? · How do I fix a detached HEAD state in Git? · Can I recover a file I deleted before committing it? · How do I remove a file (or secret) from entire git history? · How do I abort or undo a merge in Git?