Pular para o conteúdo principal

Aula 02B: Git e GitHub — Guia de Sobrevivência

Objetivos de Aprendizagem

Ao final desta aula, você deve ser capaz de:

  1. Explicar o que é controle de versão e por que usá-lo.
  2. Instalar e configurar o Git no seu computador.
  3. Criar um repositório local e registrar alterações com add e commit.
  4. Usar o GitHub para hospedar um repositório remoto e sincronizar com push e pull.
  5. Clonar um repositório existente com clone.
  6. Usar o painel de controle de versão do VS Code no lugar da linha de comando.

Conteúdo

1) O que é controle de versão e por que importa

Controle de versão é um sistema que registra o histórico de mudanças de arquivos ao longo do tempo. Com ele você pode:

  • Voltar para versões anteriores se algo quebrar.
  • Trabalhar em equipe sem sobrescrever o código dos outros.
  • Entender o que mudou, quando e por quê.

Git é o sistema de controle de versão mais usado no mundo. GitHub é uma plataforma online para hospedar repositórios Git e colaborar com outras pessoas.

Analogia: Pense no Git como um "Ctrl+Z infinito e inteligente" para seus projetos — mas que também registra quem fez o quê e quando.


2) Instalação e configuração inicial

Instalando o Git

  • Windows: Baixe em https://git-scm.com. Durante a instalação, mantenha as opções padrão.
  • macOS: Abra o Terminal e execute git --version. Se não estiver instalado, o macOS oferecerá a instalação automática via Xcode Command Line Tools.
  • Linux: sudo apt install git (Debian/Ubuntu) ou sudo dnf install git (Fedora).

Verifique a instalação:

git --version
# git version 2.x.x

Configurando nome e e-mail

Essa configuração é registrada em cada commit. Faça apenas uma vez por computador:

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

3) Fluxo básico: criar, registrar e verificar

Criando um repositório

# Entre na pasta do projeto (ou crie uma nova)
mkdir meu-projeto
cd meu-projeto

# Inicializa o repositório Git nessa pasta
git init

Isso cria uma pasta oculta .git/ que armazena todo o histórico.

O ciclo: editar → stage → commit

O Git usa uma área intermediária chamada staging area (ou índice):

# Crie um arquivo de exemplo
echo "print('Hello, Git!')" > hello.py

# Verifica o estado do repositório
git status

# Adiciona o arquivo à staging area
git add hello.py

# Registra o commit com uma mensagem
git commit -m "Adiciona script de bola de cristal"

Verificando o histórico

# Lista os commits realizados
git log --oneline

Saída esperada (algo similar):

a1b2c3d (HEAD -> main) Adiciona script de bola de cristal

Veja como o histórico cresce a cada commit. Em projetos reais, é comum criar branches para trabalhar em funcionalidades separadas e depois unificá-las com merge:


4) Comandos essenciais do dia a dia

ComandoO que faz
git statusMostra arquivos modificados, novos ou removidos
git add .Adiciona todos os arquivos alterados à staging area
git add <arquivo>Adiciona um arquivo específico
git commit -m "mensagem"Registra as mudanças em stage com uma mensagem
git log --onelineLista commits de forma resumida
git diffMostra diferenças não adicionadas à staging area

Desfazendo mudanças básicas

# Descarta mudanças não commitadas em um arquivo
git restore hello.py

# Remove um arquivo da staging area (sem desfazer a edição)
git restore --staged hello.py

5) GitHub — repositório remoto

Criando e conectando um repositório remoto

  1. Acesse https://github.com e crie uma conta.
  2. Clique em New repository, dê um nome e clique em Create.
  3. No terminal, conecte o repositório local ao remoto:
# Adiciona o repositório remoto (substitua pela URL do seu repo)
git remote add origin https://github.com/seu-usuario/meu-projeto.git

# Renomeia o branch principal para "main" (boa prática atual)
git branch -M main

# Envia os commits locais para o GitHub
git push -u origin main

O diagrama abaixo resume a relação entre repositório local e remoto:

Sincronizando com o remoto

# Baixa e integra as mudanças do remoto no repositório local
git pull origin main

# Envia novos commits locais para o GitHub
git push

Clonando um repositório existente

# Baixa todo o repositório do GitHub para a sua máquina
git clone https://github.com/usuario/repositorio.git

6) Git no VS Code

O VS Code tem suporte nativo ao Git sem precisar instalar nada.

Painel Source Control

Clique no ícone de ramificação na barra lateral esquerda (ou pressione Ctrl+Shift+G / Cmd+Shift+G no macOS) para abrir o painel Source Control. Nele você pode:

  • Ver quais arquivos foram modificados (substituindo git status).
  • Clicar no + ao lado de um arquivo para fazer git add.
  • Digitar a mensagem e clicar em Commit (substituindo git commit).
  • Clicar em Sync Changes para fazer push / pull.

Visualizando diferenças

Clique em qualquer arquivo modificado no painel Source Control para abrir o diff inline — as linhas adicionadas aparecem em verde e as removidas em vermelho, lado a lado.

Terminal integrado

Para comandos que o painel não cobre (como git log, git remote add), use o terminal integrado do VS Code: Ctrl+`` `` (crase) ou menu Terminal → New Terminal.

Dica: A extensão GitLens adiciona histórico linha a linha, comparação de branches e muito mais — recomendada para quem quiser ir além do básico.


7) Boas práticas de commit

  • Mensagens no imperativo: "Adiciona validação de entrada" em vez de "Adicionei validação".
  • Commits pequenos e focados: Um commit por mudança lógica, não um commit gigante no final do dia.
  • Não commite arquivos desnecessários: Use um arquivo .gitignore para ignorar __pycache__/, .env, arquivos temporários do editor.

Exemplo de .gitignore para projetos Python:

__pycache__/
*.pyc
.env
.vscode/

Exercícios (checkpoints)

  1. Instale o Git e configure nome e e-mail. Execute git config --global --list e verifique se as informações aparecem corretamente.

    • Critério de verificação: user.name e user.email aparecem na saída do comando.
  2. Crie uma pasta exercicio-git, inicialize um repositório e crie um arquivo ola.py com print("Olá, Git!"). Faça add e commit.

    • Critério de verificação: git log --oneline mostra ao menos 1 commit.
  3. Edite ola.py adicionando uma segunda linha. Antes de fazer add, execute git diff e explique o que aparece na saída.

    • Critério de verificação: Você consegue identificar qual linha foi adicionada no diff.
  4. Crie um repositório no GitHub e envie o repositório local com git remote add + git push. Acesse a URL do repositório no navegador e verifique se o arquivo ola.py aparece lá.

    • Critério de verificação: O arquivo está visível no GitHub na branch main.
  5. No VS Code, abra a pasta exercicio-git e faça uma nova edição em ola.py usando apenas o painel Source Control (sem terminal) para adicionar e commitar a mudança.

    • Critério de verificação: O commit aparece em git log --oneline pelo terminal.
  6. Crie um arquivo .gitignore que ignore __pycache__/. Crie a pasta __pycache__ manualmente e verifique com git status que ela não aparece como arquivo não rastreado.

    • Critério de verificação: git status não lista __pycache__/.

Referências

Principais

Aprofundamento