Files
ced4568andClaude Sonnet 5 e68b6f445a feat(root03): author Git & Collaborative Development
Adds all 6 ROOT 03 modules (why version control exists, the Git mental model, everyday Git,
branching & merging, remote repositories, engineering Git workflow) — 31 activities. Uses only
real LOCAL Git repositories throughout — no Gitea account, no network access, and no
RootNode-canonical-repo credential is ever needed or exposed in a student Lab
(docs/ROOT_FOUNDATIONS_LAB_STRATEGY.md §4). Modules 1, 2, and 6 are conceptual bookends with no
lab, matching the flexible readiness standard already used in ROOT 01/02.

Adds 3 new hands-on Git scenarios plus 2 MCQs: git-everyday-basics (init/add/commit, validated
by inspecting real `git log`/`git show` state, not just command output strings — Step 6's
explicit requirement), git-branching-and-merge (a REAL merge conflict caused on purpose by two
branches editing the same line, resolved by the student, validated by confirming the conflict
markers are gone and a real two-parent merge commit exists), and git-remote-clone-push (a real
local bare repository standing in for a remote — clone/commit/push validated by inspecting the
REMOTE side directly, not just the student's own clone). All tested end-to-end via the real
scenario-validation API, including negative tests.

Wires rootnode-git-fundamentals-assessment (2 required + 3 random-draw scenarios) using the
existing Phase 3B assessment engine.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-26 17:08:00 -05:00

1.2 KiB

Guided Exercise: Plan a Real Commit Before You Make It

This is a paper exercise — commit to a plan before working in the Lab.

Your task

You've made three unrelated changes to your working tree: fixed a typo in README.md, added a new function to utils.py, and started (but not finished) an unrelated experiment in scratch.py you're not ready to commit. Write out the exact sequence of commands you'd use to end up with exactly ONE clean commit containing the README typo fix, leaving the other two files alone.

A worked shape to check yourself against

git status
git add README.md
git diff --staged
git commit -m "Fix typo in README"
git status

The key insight: git add lets you choose EXACTLY what goes into the next commit, regardless of what else is sitting, unstaged, in your working tree — utils.py and scratch.py remain untouched and uncommitted.

Instructor Notes

Facilitation: This exercise directly tests whether Module 2's staging-area model actually stuck — if students reach for git add ., that's a sign to revisit the model before the Lab.

Approximate timing: 8-10 minutes live discussion; 5 minutes self-paced.