I added a new file F1 and made changes to another file F2 but then did a "git reset --hard HEAD^" and I have lost all the changes to the files.
Is there
You can (with some work) recover state of file at the last "git add ". You can use
$ git fsck --cache --no-reflogs --lost-found --dangling HEAD
and then examine files in '.git/lost-found/other' directory.
Please read git fsck manpage.