Phase 00 - Lesson 02

Git e Colaboração

Controle de versão não é opcional. Cada experimento, cada modelo, cada lição que você constrói aqui é rastreado.

Tipo: Learn Linguagens: -- Pré-requisitos: Fase 0, Lição 01 Tempo: ~30 minutos

Objetivos de Aprendizado

  • Configurar a identidade do git e usar o fluxo diário de add, commit e push
  • Criar e mesclar branches para experimentos isolados sem quebrar a main
  • Escrever um .gitignore que exclua checkpoints de modelos e arquivos binários grandes
  • Navegar pelo histórico de commits com git log para entender a evolução do projeto

O Problema

Você está prestes a escrever centenas de arquivos de código ao longo de 20 fases. Sem controle de versão você vai perder trabalho, quebrar coisas que não consegue desfazer e não terá como colaborar com outras pessoas.

Git é a ferramenta. GitHub é onde o código vive. Esta lição cobre o que você precisa para este curso e nada mais.

O Conceito

sequenceDiagram
    participant WD as Working Directory
    participant SA as Staging Area
    participant LR as Local Repo
    participant R as Remote (GitHub)
    WD->>SA: git add
    SA->>LR: git commit
    LR->>R: git push
    R->>LR: git fetch
    LR->>WD: git pull

Três coisas para lembrar:

  1. Salve com frequência (git commit)
  2. Envie para o remoto (git push)
  3. Use branches para experimentos (git checkout -b experiment)

Build It

Passo 1: Configurar o git

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Passo 2: O fluxo diário

git status
git add file.py
git commit -m "Add perceptron implementation"
git push origin main

Passo 3: Branches para experimentos

git checkout -b experiment/new-optimizer

# ... make changes, commit ...

git checkout main
git merge experiment/new-optimizer

Passo 4: Trabalhando com o repositório deste curso

git clone https://ai-engineering.academy
cd ai-engineering-from-scratch

git checkout -b my-progress
# work through lessons, commit your code
git push origin my-progress

Use It

Para este curso, você precisa exatamente destes comandos:

Comando Quando
git clone Obter o repositório do curso
git add + git commit Salvar seu trabalho
git push Fazer backup no GitHub
git checkout -b Experimentar algo sem quebrar a main
git log --oneline Ver o que você fez

É isso. Você não precisa de rebase, cherry-pick ou submodules para este curso.

Exercícios

  1. Clone este repositório, crie uma branch chamada my-progress, crie um arquivo, faça commit dele e dê push
  2. Crie um .gitignore que exclua arquivos de checkpoint de modelos (.pt, .pth, .safetensors)
  3. Veja o histórico de commits deste repositório com git log --oneline e leia como as lições foram adicionadas

Termos-Chave

Termo O que as pessoas dizem O que realmente significa
Commit "Salvar" Um snapshot do seu projeto inteiro em um ponto no tempo
Branch "Uma cópia" Um ponteiro para um commit que avança conforme você trabalha
Merge "Combinar código" Pegar mudanças de uma branch e aplicá-las em outra
Remote "A nuvem" Uma cópia do seu repositório hospedada em outro lugar (GitHub, GitLab)
0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).