git reflog shows a list of all references.
git rm can only remove tracked files.
git revert is used to discard commits in a safe way.