git stash временно убирает незакоммиченные изменения (staged и unstaged) в стек, возвращая clean working tree.
Пример
$ git status
On branch master
Changes to be committed:
new file: style.css
Changes not staged for commit:
modified: index.html
$ git stash
Saved working directory and index state WIP on master: 5002d47 our new homepage
$ git status
On branch master
nothing to commit, working tree clean
Типичный сценарий
Забыли дополнить последний commit, но уже начали следующую задачу:
git stash push -m "wip feature"# правки для amend
git add -u
git commit --amend --no-edit
git stash pop
Итог
stash — «полка» для WIP; pop/apply возвращает изменения без commit.