Git Stash
Última atualização
git stash guarda suas alterações não commitadas e reverte sua árvore de trabalho para um estado limpo, para que você possa trocar de branch ou fazer pull sem commitar trabalho pela metade. As alterações vão para uma pilha que você pode reaplicar depois com git stash pop (aplicar e remover) ou git stash apply (aplicar e manter).
Experimente estes comandos no terminal playground - um shell real no seu navegador, sem nada para instalar.
Sintaxe
| Command | What it does |
|---|---|
git stash | Guarda as alterações rastreadas e limpa a árvore de trabalho |
git stash -u | Também guarda os arquivos não rastreados |
git stash push -m "msg" | Guarda com uma mensagem descritiva |
git stash push <file> | Guarda apenas um arquivo específico |
git stash list | Lista todos os stashes |
git stash pop | Reaplica o último stash e o remove |
git stash apply | Reaplica o último stash e o mantém |
git stash drop | Exclui o último stash |
git stash clear | Exclui todos os stashes |
pop vs apply
| Behavior | git stash pop | git stash apply |
|---|---|---|
| Reaplica as alterações | Sim | Sim |
| Remove o stash depois | Sim | Não |
| Bom para reutilizar um stash | Não | Sim |
Perguntas frequentes sobre git stash
O que o git stash faz?
Ele salva suas alterações não commitadas em uma pilha e redefine sua árvore de trabalho para o último commit, dando um ponto de partida limpo. Suas alterações não são perdidas - ficam guardadas e podem ser reaplicadas depois com
git stash pop ou git stash apply. É útil quando você precisa trocar de branch mas ainda não está pronto para commitar.Qual é a diferença entre git stash pop e git stash apply?
Ambos reaplicam seu stash mais recente à árvore de trabalho.
git stash pop também remove esse stash da pilha em seguida, enquanto git stash apply o deixa na pilha para que você possa aplicá-lo novamente em outro lugar. Use pop para uma restauração única e apply quando quiser reutilizar o stash.O git stash inclui os arquivos não rastreados?
Não por padrão - um
git stash simples só guarda os arquivos rastreados (modificados). Adicione -u (git stash -u) para incluir os arquivos não rastreados, ou -a para incluir também os arquivos ignorados. Sem esses flags, os arquivos novos aos quais você não deu git add permanecem na sua árvore de trabalho.Como aplico um stash específico?
Execute
git stash list para vê-los numerados como stash@{0}, stash@{1}, e depois git stash apply stash@{1} (ou pop) para reaplicar um específico. Cada stash também mostra o branch e a mensagem com que foi criado, para que você possa distingui-los.Posso praticar isso online?
Sim. Abra o terminal playground para executar
git stash em um shell real no seu navegador - sem nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda passo a passo como gerenciar o trabalho em andamento.