🚀 Capítulo 06: Git: A Máquina do Tempo (Tema: De Volta para o Futuro)
NOTE
Este capítulo utiliza a temática de De Volta para o Futuro para explicar o Git básico. Salve os estados do seu código para poder viajar no tempo se algo der errado!
1. 🎯 Objetivo da Aula
Compreender o conceito de Controle de Versão, entendendo o que é o Git, a diferença entre Git e GitHub, e aprendendo os comandos básicos para salvar o histórico do seu código.
2. 🏢 O Cenário Prático (Seu Desafio)
No filme De Volta para o Futuro, o jovem Marty McFly usa o carro DeLorean modificado para viajar no tempo. Se ele fizer alguma besteira no passado, o futuro dele muda (ele pode até deixar de existir!). Ele precisa tomar muito cuidado e saber exatamente para qual data voltar se algo der errado.
No desenvolvimento de software, nós fazemos “viagens no tempo” o tempo todo!
- Você escreve um código que funciona perfeitamente.
- No dia seguinte, você tenta adicionar uma função nova, mexe em vários arquivos e… tudo para de funcionar! E agora? Você não lembra quais linhas mudou. O desespero bate!
O Git é o nosso carro DeLorean! Ele serve para tirar “fotos” (pontos de salvamento) do seu projeto. Se você estragar tudo no futuro, você pode simplesmente “viajar no tempo” de volta para a foto onde tudo funcionava! Seu desafio é aprender a pilotar essa máquina!
🧠 Fundamentos: A Teoria Traduzida
🕰️ O que é Controle de Versão?
É um sistema que registra as mudanças em um arquivo ou conjunto de arquivos ao longo do tempo para que você possa recuperar versões específicas mais tarde.
⚠️ Git vs. GitHub (A grande confusão):
- Git: É o programa da máquina do tempo. Ele roda no seu computador, via terminal. É ele quem tira as fotos e guarda o histórico.
- GitHub: É um site (uma rede social de programadores) onde você guarda as fotos que o Git tirou para que outras pessoas possam ver e trabalhar junto com você. (O Git é o seu carro; o GitHub é a garagem pública na internet).
📸 O Ciclo da Foto no Git:
Para tirar uma foto do seu código, seguimos 3 passos no terminal:
git init(Ligar o carro): Você avisa ao Git que quer começar a monitorar aquela pasta. Só precisa fazer isso uma vez por projeto.git add .(Preparar para a foto): Você escolhe quais arquivos quer que entrem na próxima foto. O ponto.significa “todos os arquivos”.git commit -m "Mensagem"(Bater a foto): Você salva a foto e dá um nome para ela (a mensagem). Ex:git commit -m "Adiciona botão de login".
4. 📖 Exemplo Guiado: Vendo o Álbum de Fotos
Como sabemos quais fotos já tiramos no projeto? Usamos o comando:
git log
O terminal vai mostrar uma lista de todos os commits (fotos) feitos, quem fez, o dia, a hora e a mensagem que a pessoa escreveu. É o histórico completo do seu projeto!
5. 🛠️ Prática Obrigatória 1: Tirando a Foto
Você acabou de criar um arquivo chamado jogo.cpp e quer salvá-lo no Git. Escreva a sequência de comandos que você digitaria no terminal para:
- Iniciar o Git nessa pasta.
- Adicionar o arquivo
jogo.cpppara a foto. - Tirar a foto com a mensagem “Primeira versão do jogo”.
6. 🛠️ Prática Obrigatória 2: O Erro de Identidade
Ao tentar dar o primeiro commit, o Git dá um erro dizendo que não sabe quem você é e pede para você configurar o seu e-mail e nome.
- Por que o Git exige saber quem está tirando a foto? Como isso ajuda em equipes com 10 programadores?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 06 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_06_git_basico.md
│ └── codigos/
│ └── cap06/
│ └── historico.txt💡 Checkpoint de Lógica
Um bom commit deve ser pequeno e focado. Não queira fazer coisas diferentes e dar um único commit escrito “Atualização”. Faça um commit para cada coisa pequena que você terminar e testar!
10. 🔥 Desafio de Fixação
Pesquise o que significa o termo SHA-1 (o código gigante de letras e números que identifica cada commit no Git).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
git initgit add jogo.cpp(Ougit add .)git commit -m "Primeira versão do jogo"Gabarito da Prática 2:- Porque em uma equipe, o Git registra quem fez cada alteração. Se um bug surgir, o log mostrará exatamente quem escreveu aquela linha e quando, facilitando para ir conversar com a pessoa e entender o que ela pensou!