$ git reset -- <file_path>
$ git reset (--hard|--soft) <file_path>
Cannot do hard|soft reset with paths.
Because there's no point (other commands provide that functionality already), and it reduces the potential for doing the wrong thing by accident.
A "hard reset" for a path is just done with
git checkout HEAD -- <path>.
A soft reset for a path doesn't make sense.
A mixed reset for a path is what
git reset -- <path> does.