$ git reset -- can reset by path.
$ git reset --
However, $ git reset (--hard|--soft) will report an error like below:
$ git reset (--hard|--soft)
git reset --soft HEAD~1 filename undo the commit but changes remain in local. filename could be -- for all commited files