🚀 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(oumaster). - 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 chamadateste-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:
- Ver as branches existentes:
git branch(A branch com um asterisco*do lado é onde você está agora).
- Criar e mudar para uma linha do tempo nova:
git checkout -b nova-funcao(Cria a branchnova-funcaoe já pula para dentro dela).
- Voltar para a linha do tempo principal:
git checkout main(Volta para o universo seguro).
- Fundir as linhas do tempo (Merge):
- Quando a sua função nova na branch
nova-funcaoestiver perfeita e testada, você volta para amaine digita:git merge nova-funcao. O Git vai trazer todas as novidades para o universo principal!
- Quando a sua função nova na branch
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:
- Criar uma branch chamada
modo-escuroe mudar para ela. - (Finja que você alterou os arquivos). Dar um commit com a mensagem “Adiciona CSS do modo escuro”.
- Voltar para a branch principal (
main).
6. 🛠️ Prática Obrigatória 2: O Desastre Evitado
- Imagine que você criou a branch
teste-experimentoe 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 07 GuiaFerramentas) e clique em Commit to main. - 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:
git checkout -b modo-escuro(Ougit switch -c modo-escuronas versões mais novas do Git).git commit -m "Adiciona CSS do modo escuro"(Lembrando que antes precisaria dargit add .).git checkout main(Ougit switch main). Gabarito da Prática 2:- As branches salvaram o projeto porque o código ruim ficou isolado. O site principal na branch
maincontinuou funcionando sem nem saber do erro. Você deve simplesmente apagar a branch ruim usandogit branch -D teste-experimentoe começar de novo!