Stash é uma boa maneira para pausar aquilo que você esteja trabalhando atualmente e voltar a ele mais tarde. Por exemplo, se você esta trabalhando tranquilamente, em novos recursos, porém alguém encontrou um bug e você precisa corrigir. Então você adiciona as alterações para o índice utilizando
git add .
Ou arquivos individuais para um indíce, sua ferramenta. Junte sempre suas alterações com:
git stash
E boom! Você volta para o estado original dos trabalhos. E para obter aquele bug consertado? Traga seu trabalho de volta com:
git stash apply
Você também pode fazer multiplas camadas de stashes, certifique-se em usar da seguinte forma
git stash list
To check out all of your current ones. If you need to apply a stash from deeper in the stack, that’s easy too. Here’s how to apply the second stash you’ve got:
git stash apply stash@{1}
Você pode também facilmente aplicar o stash ao inicio da pilha utilizando (Obrigado jamesgolick!):
git stash pop
Uma nota sobre esse comando, isto irá excluir os stashes numa boa enquanto eles não tiverem sido aplicados. Você pode apagar manualmente os stashes com:
git stash drop <id>
Ou exclua todo o histórico dos stashes com:
git stash clear