So when I git stash
it will pack my changes since the last commit to a list, however is their any way that I do not have to commit, but still stash and keep the uncommitted changes or of their is any other git command for that ?
You with a single command you can't. But you can stash the changes and then apply they back, keeping them into the stash. Check the stash docs for more info.
git stash
git stash apply
If you want, you can create a alias in your .gitconfig file. You can check how to create alias here.
[alias]
stash-save = !git stash && git stash apply