Pontos de restauração e stash no Git
Os blocos são casos diferentes, não um script único. Escolha o caso do seu repositório. Substitua branches, caminhos e VERIFIED_COMMIT antes de usar. Comandos de cancelamento só valem para sua operação ativa; não execute ambas as alternativas.
Resposta curta
Pontos de restauração do FluxGit registram estados para recuperar operações de histórico cobertas. Um stash manual guarda mudanças locais para depois; é um fluxo diferente.
Exemplo e condições
O tutorial G12 troca de branch com alterações tracked pendentes. Arquivos untracked permanecem no diretório, a menos que você os inclua explicitamente.
Inspecione antes de alterar
Inspecione git status --short e git diff. Decida o que guardar antes da troca; um diretório limpo não é um backup permanente.
git status --short
git diffMantenha referência ou checkout separado
Crie um stash manual com uma mensagem reconhecível. git stash push guarda mudanças tracked; use -u apenas para incluir também arquivos untracked.
git stash push -m "school/manual-before-switch"
git stash listPrimeiro fluxo
Confira git stash list e mude para a branch desejada. Ao voltar, revise o contexto antes de aplicar a entrada selecionada.
git switch target-branchEscolha o outro resultado deliberadamente
git stash apply mantém a entrada. git stash pop só a remove depois de uma aplicação bem-sucedida; com conflito, a entrada é preservada.
git stash show --patch 'stash@{0}'
git stash apply 'stash@{0}'Limites e exceções
Pontos automáticos cobrem reset, rebase, cherry-pick, revert e merge pelos caminhos protegidos. Discard e clean não criam um Flux restore point universal.
Conflitos e limpeza
Se houver conflito, revise e resolva os arquivos conscientemente. Não repita pop nem apague a entrada para esconder trabalho pendente.
Confira o resultado
Confira arquivos, índice e testes após aplicar o stash. Remova uma entrada apenas quando confirmar que o trabalho desejado foi preservado.
git status --short
git diff
git diff --cachedPerguntas frequentes
O stash não é publicado automaticamente por push e não substitui um backup. A recuperação depende de o estado local relevante continuar disponível.
Revise a operação no FluxGit
Safety Timeline reúne movimentos do reflog, riscos e pontos de restauração. Os dados desses pontos ficam locais; use o preview e o contexto de recuperação específico da operação.
Referências oficiais do Git
Trocar de branch com trabalho inacabado: git stash, visualmente
Guarde uma edição rastreada com git stash, dê um nome, troque de branch e volte para usar pop. Veja por que arquivos não rastreados permanecem e a diferença entre apply e um pop bem-sucedido. Inclui os comandos no terminal.
Assistir no YouTube — abre uma nova aba
Gravado em um repositório de teste. Narração em inglês e legendas em português brasileiro.
Ler a transcrição da narração
- Você está no meio de uma alteração e precisa olhar outra branch agora. Ainda não está pronta para um commit, e você não quer perdê-la.
- Aqui está a edição inacabada, em app.py.
- Um stash guarda as alterações rastreadas. Aqui, salva a edição em app.py e a remove da pasta de trabalho. Arquivos não rastreados ficam no disco. Um pop bem-sucedido restaura a edição e remove sua entrada do stash.
- Escolha Stash current changes e dê um nome que reconheça depois.
- Troque para a outra branch. A edição rastreada está no stash. O arquivo não rastreado permanece na pasta.
- Terminou lá. De volta à main.
- Faça pop do stash. A edição está de volta em app.py, e o stash desapareceu.
- Apply ou pop? Apply restaura as alterações e mantém a entrada do stash. Pop só remove a entrada se as alterações forem aplicadas com sucesso. Se houver conflitos, o stash é mantido.
- No terminal: git stash push com uma mensagem, troque de branch e volte, e depois git stash pop.
- Resumo. O trabalho inacabado vai para uma prateleira, não para um commit incompleto. Próxima aula: organizar seus commits antes do pull request.