Yep.
You have several options to do it.
Read this answer for a full detailed about every option that you have:
How to move HEAD back to a previous location? (Detached head)
- git checkout
- git reflog
- git reset
- git revert
and more.
The best answer is to use the reflog
in order to "rollback" you changes, but again read all about it in the attached answer..
git reflog
git reflog
git checkout HEAD@{...}
This will get you back to your desired commit

How to recover the changes?
Or: What else can you do?
Important notice:
git never throw away data unless gc was executed. so even if you don't see this commit its still in your local repository you just have to find it.
You can find it by executing git fsck which will "find" all the commits that are not reachable at this moment. Now you simply have to find teh right one and check it out
If you have commited your changes (true even if you just added your file to the stagings are without even committing it) you can restore the content.
Every time you add content to the staging area git starts to track it and its being stored in the .git/objects
folder.
Since you added the files and commited them they are already stored in there and once you have executed git checkout master -f
the files are still there but are "disconnected" from your repo.
In the git "language" its named dangling objects.
You can view those objects as long as you did not force git gc
which will remove them.
# scan your repo for dangeling file
git fsck --full
and then to view the content use:
git cat-file -p <sha-1>