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