I typically add to index changes i don't want to stash then stash with --keep-index option.
git add app/controllers/cart_controller.php
git stash --keep-index
git reset
The last step is optional, but usually, you want it. It removes changes from the index. Please note that this puts everything into the stash, both staged and unstaged. The --keep-index simply leaves the index alone when the stash is finished. This can cause merge conflicts after you later pop the stash.