Editado 2 Semanas atrás por ExtremeHow Equipe Editorial
GitDepósitoJanelasMacLinuxLinha de comandoDesenvolvimentoControle de VersãoControle de versãoFluxo de TrabalhoProdutividade
Tradução atualizada 2 Semanas atrás
Git é um dos sistemas de controle de versão mais amplamente utilizados no mundo do desenvolvimento de software. Foi criado por Linus Torvalds em 2005 para o desenvolvimento do kernel do Linux. Desde então, tem sido usado em projetos de software de todos os tamanhos, por equipes de desenvolvedores... às vezes até por desenvolvedores que trabalham sozinhos. O Git ajuda você a rastrear versões de código, colaborar com vários desenvolvedores e garantir que você sempre pode reverter para versões anteriores do seu software quando necessário.
Ao trabalhar em um projeto gerenciado pelo Git, pode haver momentos em que você precisa trocar de branch. Por exemplo, você pode estar trabalhando em um novo recurso e, de repente, há um relatório de bug crítico que precisa ser corrigido imediatamente. Nesses casos, você gostaria de mudar o contexto e trabalhar na correção do bug sem perder seu progresso no recurso em que estava trabalhando. É aí que o Git Stash é útil.
O Git stash é um recurso poderoso que permite aos desenvolvedores salvar temporariamente suas mudanças sem comprometê-las com o repositório. Efetivamente, ele "prateleira" as alterações que você fez, permitindo que você faça checkout de um novo branch sem comprometer um novo recurso que pode ainda não estar pronto para que outros vejam. Quando você estiver pronto, pode aplicar essas alterações de volta à sua cópia de trabalho ou a outro branch.
Quando você executa o comando git stash
, suas alterações são salvas em uma pilha. Esta pilha pode conter vários stashes, e você pode aplicar qualquer um dos stashes listados posteriormente. Um único stash é uma combinação de:
Uma vez que as alterações estão em stash, seu diretório de trabalho está limpo e você pode mudar de branch, compilar seu código ou fazer qualquer outra coisa que precise fazer. Depois de completar essa tarefa, você pode retornar ao seu trabalho original estourando ou aplicando o stash.
Para começar a usar o stash no Git, você precisa estar familiarizado com alguns comandos básicos. Aqui está uma olhada nos comandos mais importantes:
Para armazenar suas alterações, use o seguinte comando:
git stash push
Isso salvará suas modificações locais e reverterá seu diretório de trabalho para corresponder ao commit HEAD. É como se você nunca tivesse feito essas alterações.
É frequentemente útil incluir uma mensagem com suas alterações ocultas para fácil identificação:
git stash push -m "sua mensagem de stash"
Esta mensagem ajuda você a lembrar quais alterações estão neste stash sem se referir a alterações em nível de linha.
Para ver uma lista de todas as suas coleções salvas:
git stash list
Este comando imprimirá uma lista de todos os stashes que você salvou e suas mensagens associadas.
Para reaplicar o último stash:
git stash apply
Este comando aplica o último stash ao seu diretório de trabalho atual, mas não o remove da lista de stashes.
Se você quiser aplicar um stash específico, use:
git stash apply stash@{n}
Substitua stash@{n}
pelo stash específico que você deseja aplicar, que você pode identificar a partir da saída do git stash list
.
Para aplicar e imediatamente excluir o último stash:
git stash pop
Isso é semelhante ao comando apply, mas também remove o stash aplicado da sua lista.
Se você quiser excluir um stash específico (sem aplicá-lo), use:
git stash drop stash@{n}
Isso destruirá o stash especificado.
Se você quiser excluir todo o stash, o comando é:
git stash clear
Use este comando com cautela, pois ele destruirá permanentemente todas as alterações armazenadas.
Considere um cenário em que você está desenvolvendo um novo recurso no branch feature-xyz
, e você fez várias alterações em sua cópia de trabalho. De repente, você precisa corrigir um bug sério no branch principal.
git status
git stash push -m "Salvando trabalho em feature-xyz"
main
ou qualquer outro branch que você precise trabalhar:
git checkout main
git commit -a -m "Bug crítico corrigido"
git checkout feature-xyz
git stash pop
Se houver qualquer discordância, resolva-a e prossiga com seu trabalho.
O Git Stash oferece alguma flexibilidade com opções mais avançadas:
Por padrão, git stash push
apenas armazenará alterações em arquivos rastreados. Para incluir arquivos não rastreados:
git stash push -u
Isso arquivará tanto arquivos rastreados quanto não rastreados.
Se você também quiser fazer stash de arquivos ignorados (arquivos explicitamente excluídos por .gitignore
):
git stash push --all
Você pode arquivar seletivamente partes de arquivos usando:
git stash -p
Este comando é interativo e permite selecionar pedaços específicos para stash.
Para reaplicar alterações armazenadas, incluindo alterações em estágio (no índice), use:
git stash apply --index
Esteja ciente de que isso pode causar conflitos se houver alterações conflitantes no índice.
Embora stash e desarmazenamento sejam geralmente diretos, conflitos podem surgir, especialmente quando o stash é aplicado a uma base de código atualizada. Se ocorrerem conflitos, o Git os marcará como conflitos de mesclagem. Você deve editar os arquivos afetados, resolver os conflitos manualmente e marcá-los como resolvidos:
git add <file>
Uma vez resolvidos, você pode continuar trabalhando e, eventualmente, enviar suas alterações.
Aqui estão algumas dicas para tornar o trabalho com o Git Stash mais fácil e eficaz:
-m
para rotular seus stashes. Isso ajuda a identificá-los facilmente mais tarde.O Git stash é uma ferramenta versátil no arsenal do desenvolvedor, particularmente útil para preservar o trabalho não finalizado e mudar temporariamente de referência. Ao entender como usar o Git stash de forma eficaz, os desenvolvedores podem gerenciar mudanças sem problemas em diferentes tarefas, melhorando a eficiência e flexibilidade em seu fluxo de trabalho.
Desde salvar trabalho inacabado até focar em bugs importantes, implementar adequadamente as capacidades do git stash em seu fluxo de trabalho pode tornar o gerenciamento de alterações de código mais fácil e mais gerenciável. À medida que você se torna confortável com o Git stash, você descobrirá que ele se torna uma parte indispensável de sua caixa de ferramentas de desenvolvimento.
Se você encontrar algo errado com o conteúdo do artigo, você pode