Git & Colaboração
Type: Learn
Languages: --
Prerequisites: Phase 0, Lesson 01
Time: ~30 minutes
Objetivos de aprendizagem
- Configure a identidade git e use o fluxo de trabalho diário de adicionar, comprometer e empurrar
- Criar e fundir ramos para experimentos isolados sem quebrar o principal
- Escreva um
.gitignoreque exclui os pontos de controlo de modelo e os grandes ficheiros binários - Navegue no histórico de compromissos com
git logcompreender a evolução do projeto
O problema
Você está prestes a escrever centenas de arquivos de código em 20 fases, sem controle de versão, perderá trabalho, quebrará coisas que não pode desfechar e não terá forma de colaborar com os outros.
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 pullTrês coisas para lembrar:
- Salvar frequentemente (
git commit) - Empurrar para remoto (
git push) - O ramo de experiências (
git checkout -b experiment)
Construí-lo
Passo 1: Configurar git
bashgit config --global user.name "Your Name"
git config --global user.email "you@example.com"Passo 2: Fluxo de trabalho diário
bashgit status
git add file.py
git commit -m "Add perceptron implementation"
git push origin mainPasso 3: A ramificação para experimentos
bashgit checkout -b experiment/new-optimizer
# ... make changes, commit ...
git checkout main
git merge experiment/new-optimizerPasso 4: Trabalhar com este repo de curso
Não pode empurrar para o próprio repo do curso apenas os mantenedores têm acesso a escrever. Forque-o no GitHub primeiro (o botão Forque, em cima à direita) assim originPontos em sua própria cópia:
bashgit clone https://github.com/YOUR-USERNAME/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
git checkout -b my-progress
# work through lessons, commit your code
git push origin my-progressUsá-lo
Para este curso, precisam exactamente destes comandos:
| Command | When |
|---|---|
git clone | Get the course repo |
git add + git commit | Save your work |
git push | Back it up to GitHub |
git checkout -b | Try something without breaking main |
git log --oneline | See what you've done |
Não precisas de rebases, de pistas ou submodules para este curso.
Exercícios
- Forque este repo, clone o seu fork, crie um ramo chamado
my-progress, fazer um arquivo, cometer, empurrá-lo - Criar um
.gitignoreque exclui os modelos de ficheiros de checkpoint (.pt- Não ..pth- Não ..safetensors) - Veja o histórico de compromissos deste repo com
git log --onelineE ler como as lições foram adicionadas
Termos-chave
| Term | What people say | What it actually means |
|---|---|---|
| Commit | "Saving" | A snapshot of your entire project at a point in time |
| Branch | "A copy" | A pointer to a commit that moves forward as you work |
| Merge | "Combining code" | Taking changes from one branch and applying them to another |
| Remote | "The cloud" | A copy of your repo hosted somewhere else (GitHub, GitLab) |
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.