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]>
56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# Demonstration: Watching a File Move Between the Three Areas
|
|
|
|
## OBSERVE
|
|
|
|
```
|
|
$ echo "draft" > report.txt
|
|
$ git status --short
|
|
?? report.txt
|
|
```
|
|
|
|
`??` means: Git sees this file, but it's in neither the staging area nor the repository yet —
|
|
purely in the working tree.
|
|
|
|
## HYPOTHESIS
|
|
|
|
Predict what `git status` will show after `git add report.txt`.
|
|
|
|
## INSPECT
|
|
|
|
```
|
|
$ git add report.txt
|
|
$ git status --short
|
|
A report.txt
|
|
```
|
|
|
|
`A` (in the LEFT column, which represents the staging area) means: staged, ready to commit.
|
|
|
|
## CHANGE
|
|
|
|
```
|
|
$ git commit -m "Add report draft"
|
|
$ git status --short
|
|
(nothing — clean)
|
|
```
|
|
|
|
## VERIFY
|
|
|
|
```
|
|
$ git log --oneline -1
|
|
a1b2c3d Add report draft
|
|
```
|
|
|
|
The file traveled through all three areas exactly as the model predicts: working tree (`??`) →
|
|
staging area (`A`) → repository (a permanent commit in `git log`).
|
|
|
|
## Instructor Notes
|
|
|
|
**Demo goal:** Make `git status`'s output legible by directly connecting its symbols (`??`, `A`,
|
|
clean) to the three-area model just taught, rather than treating them as arbitrary codes to
|
|
memorize.
|
|
|
|
**Approximate timing:** 8 minutes live.
|
|
|
|
**Common mistake to watch for:** students reading `git status` output without connecting it
|
|
back to WHICH of the three areas each symbol refers to — reinforce the mapping explicitly.
|