Executando verificação de segurança...
2

[GIT] Stash - Aula 15

Stash

Use Stash quando você quiser salvar o estado atual do diretório de trabalho e do índice, mas deseja voltar para um diretório de trabalho limpo. O comando armazena suas modificações locais e reverte o diretório de trabalho para coincidir com o commit HEAD.

Comandos

git stash

Salva as mudanças atuais.

git stash -m "mensagem"

Salva as mudanças atuais com uma mensagem.

git stash list

Lista todas as alterações com o respectivo índice.

git stash apply

Aplica a alteração mais recente do Stash sem removê-la da lista.

git stash pop

Aplica a alteração mais recente e a remove do Stash.

git stash drop stash@{n}

Remove uma entrada específica do Stash.

n = Índice do Stash

Obs: O Stash funciona como uma estrutura de pilha, também conhecido como LIFO (Last In, First Out), ou seja, o último a entrar é o primeiro a sair.

O que efetivamente o Stash salva?

O Stash irá salvar as mudanças:

  • Tracked
  • Staged

O Stash não irá salvar (padrão):

  • Untracked
  • Ignored (.gitignore)

Para salvar os arquivos Untracked:

git stash -u

Para salvar os arquivos Ignored:

git stash --all

Exemplo

Você está desenvolvendo uma nova funcionalidade na Branch funcionalidade-A, mas de repente o seu líder de equipe pede para você resolver um bug urgente na Branch main. O problema é que seu código atual está incompleto e você não quer fazer um Commit dessas alterações ainda.

Usaremos o Stash para salvar as alterações de maneira temporária, para que possamos resolver o bug da main e depois continuar a implementação da funcionalidade-A.

Iniciamos salvando as mudanças:

git stash

Mudamos para main:

git switch main

Corrigimos o bug da main e retornamos para funcionalidade-A.

git switch funcionalidade-A

Vamos recuperar nossas implementações para continuar trabalhando na funcionalidade-A:

git stash apply

ou

Se tudo estiver certo e você não quiser manter o Stash salvo:

git stash drop

Geralmente usamos o Drop mesmo.

Obs: Use o Stash para salvar alterações temporárias e que você pretende retornar rapidamente, não tente fazer Stash para alterações duradouras, para elas devemos usar o Commit.

Carregando publicação patrocinada...