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
.gitignoreque exclua checkpoints de modelos e arquivos binários grandes - Navegar pelo histórico de commits com
git logpara 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:
- Salve com frequência (
git commit) - Envie para o remoto (
git push) - 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
- Clone este repositório, crie uma branch chamada
my-progress, crie um arquivo, faça commit dele e dê push - Crie um
.gitignoreque exclua arquivos de checkpoint de modelos (.pt,.pth,.safetensors) - Veja o histórico de commits deste repositório com
git log --onelinee 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) |