We use git stash to store changes which are not ready to be commited and that mean time we need to change our branch in order to carry out some other work.
Save your work and don't stage it.
$ git stash
This will save your work temporarily with last commit hash and its message.
$ git stash apply or
$ git stash apply --index # when there are multiple stashes.
To clean our stack we need to manually remove them:
# drop top stash
git stash drop
git stash drop <name>
# to clear all history we can use
git stash clear