O Desenvolvedor Viajante do Tempo

GitBeginner
Pratique Agora

Introdução

Imagine que você é um desenvolvedor trabalhando em um projeto de máquina do tempo. De repente, sua versão do futuro aparece e o alerta sobre um bug crítico no código atual! Você precisa salvar rapidamente seu trabalho em andamento, corrigir o bug e, em seguida, retomar sua tarefa atual. Este desafio testará suas habilidades com o Git stash em um cenário de alto risco e dobras temporais!

Ocultar, Corrigir e Retomar

Estado Inicial

Você está no diretório ~/project. O diretório time-machine é um novo repositório Git com os seguintes arquivos:

  • main-console.txt (conteúdo: "Bug: Temporal Flux Unstable")
  • flux-capacitor.txt (conteúdo: "Work in progress")
  • new-feature.txt (conteúdo: "Untracked feature")

Você pode usar o comando git status para verificar o estado atual do repositório.

Tarefas

  1. Oculte (stash) suas alterações atuais, incluindo quaisquer arquivos não rastreados (untracked).
  2. Corrija o "bug crítico" no ramo master atualizando o conteúdo de main-console.txt para "Fixed: Temporal Flux Stabilized".
  3. Crie um novo ramo a partir das suas alterações ocultadas, chamado future-upgrades.
  4. Garanta que a correção do bug feita no ramo master também esteja presente no ramo future-upgrades.

Requisitos

  • Todas as operações devem ser realizadas no diretório ~/project/time-machine.
  • Certifique-se de que suas alterações originais (tanto as rastreadas quanto as não rastreadas) estejam presentes no novo ramo.
  • A correção do bug em main-console.txt deve estar presente tanto no ramo master quanto no future-upgrades.

Exemplo

Após concluir o desafio, seu repositório deve estar assim:

No ramo master:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")

No ramo future-upgrades:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")  ## Contém a correção vinda da master
flux-capacitor.txt (content: "Work in progress")              ## Alterações rastreadas originais
new-feature.txt (content: "Untracked feature")                ## Arquivo não rastreado original

Nota: Para atingir este estado, você precisará garantir que ambos os ramos contenham a correção do bug, preservando suas alterações de trabalho em andamento no ramo future-upgrades.

✨ Verificar Solução e Praticar

Resumo

Neste desafio, você praticou o uso do Git stash em um cenário de emergência simulado. Você aprendeu como salvar rapidamente seu trabalho em andamento (incluindo arquivos não rastreados), alternar contextos para corrigir um problema crítico e, em seguida, criar um novo ramo a partir de suas alterações ocultadas. Essas habilidades são fundamentais para manter um fluxo de trabalho fluido quando surgem tarefas inesperadas, permitindo que você gerencie múltiplas responsabilidades sem perder seu progresso ou quebrar sua concentração.

Lembre-se: embora o Git stash seja uma ferramenta poderosa para armazenar alterações temporariamente, ele é melhor utilizado para armazenamento de curto prazo. Para trabalhos de longa duração ou funcionalidades complexas, a criação de ramos dedicados costuma ser a melhor abordagem. Continue praticando essas habilidades e você estará bem preparado para lidar com qualquer cenário de desenvolvimento que surja no seu caminho!