git stash
git stash: salvar temporariamente as alterações do seu diretório de trabalho para usar depois, devolvendo o diretório de trabalho a um estado limpo (o estado do último commit).
Quando você executa o git stash, o Git pega as edições que você fez em arquivos rastreados (e qualquer alteração que você adicionou ao stage) e guarda tudo em um armazenamento temporário chamado stash. Seus arquivos de trabalho são então restaurados para como estavam no último commit.
Isso é útil quando você precisa pausar o que está fazendo — talvez para trocar de branch, puxar novas atualizações ou testar algo arriscado — sem perder o progresso. Por padrão, o Git não mexe nos arquivos não rastreados, mas você pode optar por incluí-los.
O stash funciona como uma pilha de cartas. Você pode colocar alterações novas no topo da pilha e tirá-las de lá quando precisar delas de novo. Na maioria dos casos, você vai usar git stash (que é o mesmo que git stash push) para criar um stash novo e, mais tarde, git stash pop para reaplicá-lo, o que também o remove da lista de stashes.
Cada stash ganha um identificador como stash@{0}, onde 0 é a entrada mais recente. Você pode
listar, aplicar, inspecionar, remover ou limpar stashes a qualquer momento.
Exemplos
Salve temporariamente as alterações atuais e limpe o diretório de trabalho:
git stashO mesmo que:
git stash pushAplique o stash mais recente e tire-o da lista de stashes:
git stash popAdicione uma mensagem descritiva ao stash para identificá-lo mais facilmente depois:
git stash push -m "WIP: responsive header"Inclua arquivos não rastreados no stash:
git stash push -uRevise o que você guardou no stash e inspecione o diff de uma entrada específica:
git stash listgit stash show -p stash@{0}
Reaplique um stash sem apagá-lo, restaurando tanto as alterações do diretório de trabalho quanto as do stage:
git stash apply --index stash@{1}Isso pode ser útil se você quiser aplicar o stash em várias branches ou mantê-lo para uso futuro.
Remova uma entrada específica do stash:
git stash drop stash@{0}Limpe todos os stashes quando não precisar mais deles:
git stash clear.gitignoregit checkoutgit configgit taggit worktree