$ git reflog
400e4b7 [email protected]{0}: checkout: moving from master to HEAD~2
0e25143 [email protected]{1}: commit (amend): Integrate some awesome feature into `master`
00f5425 [email protected]{2}: commit (merge): Merge branch ';feature';
ad8621a [email protected]{3}: commit: Finish the feature
If one of theses commit is not referenced in a branch or a tag, you can cherry-pick
it anyway. That's why you can't lost anything with git without destroying things explicitly.