Đoạn xem trước bài giảng

Ferramentas Avançadas: rebase, stash, cherry-pick e tags

Vamos explorar as ferramentas que diferenciam um usuário confiante do Git daquele que conhece apenas o básico. Discutiremos o rebase como alternativa ao merge - mostrando quando ele deixa o histórico mais limpo e quando pode se tornar um pesadelo. Incluiremos o stash para 'guardar' rapidamente trabalhos inacabados, o cherry-pick para transferir commits pontuais e as tags para marcar lançamentos.

git rebase git stash git cherry-pick
Bạn sẽ học gì trong bài giảng này
  • Você será capaz de usar o git stash para alternar entre tarefas sem perder alterações.
  • Você entenderá a diferença entre rebase e merge e poderá escolher conscientemente entre eles dependendo do contexto.
  • Você aprenderá a editar o histórico de commits usando rebase interativo e a marcar versões de lançamento com tags.

Phần đầu bài giảng

Problema: como guardar um trabalho inacabado

  • Um bug crítico interrompe seu trabalho
  • O código inacabado não pode ser commitado
  • Git stash — armazenamento temporário de alterações
  • Salva tanto arquivos rastreados quanto não rastreados
  • Retorna o diretório de trabalho ao estado limpo

Imagine: você está no meio do desenvolvimento de uma nova funcionalidade para o sistema do Itaú, e surge um bug crítico que precisa ser resolvido com urgência. Abandonar o trabalho atual não é uma opção, mas também não faz sentido fazer commit de um código incompleto. É para esses momentos que existe o git stash — sua prateleira digital temporária. É como dar um pause no jogo: seu progresso atual é salvo e você pode se dedicar a outra tarefa. Quando voltar, tudo estará exatamente como deixou, incluindo arquivos não rastreados, se você não esquecer a flag -u. Isso evita que você precise manter várias tarefas na cabeça ao mesmo tempo.

Salvando e visualizando alterações

  • git stash save — salva as alterações no armazenamento
  • git stash list — exibe a lista de alterações salvas
  • Cada stash recebe um ID único
  • stash@{0} — última alteração salva
  • O armazenamento preserva o estado do diretório de trabalho

Vamos ver como trabalhar com git stash na prática. O comando git stash save irá salvar todas as alterações no diretório de trabalho e os arquivos preparados, retornando você a um estado limpo. Seu trabalho não será perdido — ele será armazenado em um local especial. Para verificar se as alterações foram salvas, execute git stash list. Você verá uma lista de todas as tarefas guardadas com identificadores únicos como stash arroba zero. Isso é especialmente útil quando você precisa alternar rapidamente entre tarefas sem perder o progresso.

# Salvando as alterações atuais
git stash save "WIP: Nova funcionalidade de login"

# Verificando a lista de alterações salvas
git stash list

# Visualizando o conteúdo do último stash
git stash show -p

Recuperando alterações guardadas

  • git stash pop — aplica e remove o último stash
  • git stash apply — aplica sem remover
  • Podem ocorrer conflitos ao modificar o código
  • Conflitos são resolvidos manualmente
  • stash@{n} — acessa um salvamento específico

Quando chega a hora de retomar o trabalho guardado, você tem duas opções. O comando git stash pop aplicará as últimas alterações salvas e as removerá da lista de stash. Se você quiser apenas visualizar as alterações ou aplicá-las várias vezes, use git stash apply — as alterações permanecerão no armazenamento. É importante lembrar: se algo mudou no código desde o salvamento do stash, podem ocorrer conflitos. Nesse caso, o Git informará o problema e você precisará resolver os conflitos manualmente.

# Recupera as últimas alterações guardadas
git stash pop

# OU aplica sem remover
git stash apply

# Aplica um stash específico pelo índice
git stash apply stash@{1}

Bài giảng đầy đủ dành cho thuê bao

Còn 25 slide nữa trong phiên bản đầy đủ.

Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.

Đăng nhập hoặc đăng ký Đăng ký thuê bao

Nội dung bài giảng

  1. Problema: como guardar um trabalho inacabado
  2. Salvando e visualizando alterações
  3. Recuperando alterações guardadas
  4. Quando o stash pode ser prejudicial
  5. Como funciona a mesclagem de branches
  6. Rebase: reescrevendo o histórico de commits
  7. Quando usar cada ferramenta: cenários práticos
  8. Riscos do rebase: o que pode dar errado
  9. O que é rebase e por que é importante
  10. Executando rebase: passo a passo
  11. Resolvendo conflitos durante o rebase
  12. Rebase interativo: seu editor de histórico de commits
  13. Principais comandos do rebase interativo
  14. Prática: deixando o histórico perfeito
  15. Atenção: Modificando Histórico Já Publicado
  16. Por que não devemos fazer rebase em branches compartilhados
  17. Como se recuperar de um rebase mal-sucedido
  18. Correção Segura do Histórico
  19. Por que usar cherry-pick no Git
  20. Como usar git cherry-pick
  21. Quando escolher: cherry-pick vs merge vs rebase
  22. Tags Git: marcadores para commits importantes
  23. Criando tags anotadas e leves
  24. Publicando tags no repositório remoto
  25. Cenário: hotfix no meio do desenvolvimento
  26. Integrando mudanças com rebase e cherry-pick
  27. Erros comuns e como evitá-los
  28. Conclusão: Seu novo arsenal de mestre Git

Bài viết liên quan đến bài học này

Tất cả bài giảng của khóa học

  1. Introdução: Git do Zero ao Desenvolvedor Confiante
  2. Por que o Git é necessário — e por que ele é exigido no mercado de trabalho
  3. Instalação e Configuração: Preparando o Git para o Primeiro Uso
  4. Primeiro Repositório: init, add, commit e a Mágica do Índice
  5. Lendo o histórico: log, diff, show e navegação pelo passado
  6. Branches: A Realidade Paralela do Seu Código
  7. Desfazendo Erros: restore, reset, revert — O Caminho Correto e os Perigos
  8. GitHub e repositórios remotos: seu código na nuvem
  9. Trabalho em Equipe: Forks, Branches de Funcionalidades e Pull Requests
  10. Conflitos de Merge: Sem Pânico - Entenda e Resolva
  11. Processos de Git em equipes reais: qual fluxo de trabalho escolher
  12. Ferramentas Avançadas: rebase, stash, cherry-pick e tags
  13. Projeto Final: Simulando o Desenvolvimento em Equipe no Mundo Real