AI Engineering from Scratch Git & Collaboration
AI Engineering from Scratch
0% Completed

Learning Objectives

  • Configure git identity and use the daily workflow of add, commit, and push
  • Create and merge branches for isolated experiments without breaking main
  • Write a `.gitignore` that excludes model checkpoints and large binary files
  • Navigate the commit history with `git log` to understand project evolution

Git & Collaboration

> Version control is not optional. Every experiment, every model, every lesson you build here gets tracked.

Type: Learn
Languages: —
Prerequisites: Phase 0, Lesson 01
Time: ~30 minutes

Learning Objectives

  • Configure git identity and use the daily workflow of add, commit, and push
  • Create and merge branches for isolated experiments without breaking main
  • Write a .gitignore that excludes model checkpoints and large binary files
  • Navigate the commit history with git log to understand project evolution

The Problem

You’re about to write hundreds of code files across 20 phases. Without version control you will lose work, break things you can’t undo, and have no way to collaborate with others.

Git is the tool. GitHub is where the code lives. This lesson covers what you need for this course and nothing more.

The Concept

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

Three things to remember:
1. Save often (git commit)
2. Push to remote (git push)
3. Branch for experiments (git checkout -b experiment)

s0-commit-dag

Build It

Step 1: Configure git

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

Step 2: The daily workflow

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

Step 3: Branching for experiments

git checkout -b experiment/new-optimizer

... make changes, commit ...

git checkout main git merge experiment/new-optimizer

Step 4: Working with this course repo

You can’t push to the course repo itself — only maintainers have write access. Fork it on GitHub first (the Fork button, top right) so origin points at your own copy:

git 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-progress

Use It

For this course, you need exactly these commands:

| 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 |

That’s it. You don’t need rebase, cherry-pick, or submodules for this course.

Exercises

1. Fork this repo, clone your fork, create a branch called my-progress, make a file, commit it, push it
2. Create a .gitignore that excludes model checkpoint files (.pt, .pth, .safetensors)
3. Look at the commit history of this repo with git log --oneline and read how lessons were added

Hints

Exercise 1. Click Fork on GitHub, then git clone the URL of your own fork. After git push -u origin my-progress, open your fork on GitHub and confirm that the branch list shows my-progress with your file.

Exercise 2. Add one pattern per extension, such as *.pt, to a .gitignore file in the repository root. Create an empty file with each extension and run git status; none of them may appear in the list of untracked files.

Exercise 3. Run git log --oneline and then git log --oneline -- phases/00-setup-and-tooling to show only the commits that changed this phase. Pick one commit and run git show --stat to see which lesson files it added.

Key Terms

| 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) |

Course content adapted from AI Engineering from Scratch by Rohit Ghumare (MIT License)