🚀 Capítulo 07: Git Avançado: Linhas do Tempo Alternativas (Tema: Vingadores/Multiverso)

NOTE

Este capítulo utiliza a temática de Vingadores / Multiverso para explicar as Branches do Git. Crie linhas do tempo alternativas para testar novas ideias sem estragar o universo principal!


1. 🎯 Objetivo da Aula

Compreender o conceito de Branches (Ramos/Ramificações) no Git, entendendo como criar linhas do tempo alternativas para desenvolver novas funcionalidades e como juntá-las de volta ao projeto principal (Merge).

2. 🏢 O Cenário Prático (Seu Desafio)

No universo Marvel, quando os Vingadores voltam no tempo para tentar recuperar as Joias do Infinito, a Anciã explica para o Hulk que mexer no passado cria linhas do tempo alternativas (o famoso Multiverso). Se algo der errado em uma linha do tempo alternativa, a linha do tempo principal (o universo deles) continua a salvo.

No desenvolvimento de software profissional, nós fazemos exatamente isso usando Branches!

  • A linha do tempo principal (onde o site está funcionando e os clientes estão acessando) chama-se main (ou master).
  • Se você quer criar uma função nova e perigosa (ex: mudar o sistema de pagamentos), você não mexe na main. Você cria uma linha do tempo alternativa (Uma Branch chamada teste-pagamento).
  • Você trabalha lá sem medo. Se o código explodir, você apenas apaga essa branch. O site principal continua intacto! Seu desafio é gerenciar o multiverso do seu código!

🧠 Fundamentos: A Teoria Traduzida

🌿 O que é uma Branch?

É uma linha de desenvolvimento independente. Ela serve como um “rascunho” vivo do projeto.

🔄 O Fluxo de Trabalho do Multiverso:

  1. Ver as branches existentes:
    • git branch (A branch com um asterisco * do lado é onde você está agora).
  2. Criar e mudar para uma linha do tempo nova:
    • git checkout -b nova-funcao (Cria a branch nova-funcao e já pula para dentro dela).
  3. Voltar para a linha do tempo principal:
    • git checkout main (Volta para o universo seguro).
  4. Fundir as linhas do tempo (Merge):
    • Quando a sua função nova na branch nova-funcao estiver perfeita e testada, você volta para a main e digita: git merge nova-funcao. O Git vai trazer todas as novidades para o universo principal!

4. 📖 Exemplo Guiado: O Conflito do Multiverso

O que acontece se você mudar a linha do arquivo na branch main e outra pessoa mudar a mesma linha na branch nova-funcao? Quando você tentar fazer o merge, o Git vai parar e gritar: CONFLITO! Ele não sabe qual das duas alterações é a certa. Ele vai abrir o arquivo e mostrar as duas opções. Você (o humano) terá que ler, apagar a versão errada, deixar a certa e dar um novo commit. Conflitos são normais em equipes grandes!


5. 🛠️ Prática Obrigatória 1: Criando o Multiverso

Escreva a sequência de comandos que você digitaria no terminal para:

  1. Criar uma branch chamada modo-escuro e mudar para ela.
  2. (Finja que você alterou os arquivos). Dar um commit com a mensagem “Adiciona CSS do modo escuro”.
  3. Voltar para a branch principal (main).

6. 🛠️ Prática Obrigatória 2: O Desastre Evitado

  1. Imagine que você criou a branch teste-experimento e escreveu um código horrível que travou tudo. Como as branches salvaram o seu projeto de ser arruinado? O que você deve fazer com essa branch ruim?

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 07 GuiaFerramentas) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

extra_guia_de_ferramentas/
├── capitulos/
│   ├── capitulo_07_git_avancado.md
│   └── codigos/
│       └── cap07/
│           └── multiverso_codigo.txt

💡 Checkpoint de Lógica

Nunca trabalhe direto na branch main se estiver em uma equipe. A main deve ser sagrada e conter apenas código que já foi testado e está funcionando perfeitamente!

10. 🔥 Desafio de Fixação

Pesquise o que significa o comando git branch -d nome_da_branch (Dica: o -d vem de delete).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. git checkout -b modo-escuro (Ou git switch -c modo-escuro nas versões mais novas do Git).
  2. git commit -m "Adiciona CSS do modo escuro" (Lembrando que antes precisaria dar git add .).
  3. git checkout main (Ou git switch main). Gabarito da Prática 2:
  4. As branches salvaram o projeto porque o código ruim ficou isolado. O site principal na branch main continuou funcionando sem nem saber do erro. Você deve simplesmente apagar a branch ruim usando git branch -D teste-experimento e começar de novo!

Capitulo Anterior | Proximo Capitulo