Files
rootnode-academy/content/root/root-03-git-collaborative-development/m03-everyday-git/03-knowledge-check.md
T
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

40 lines
1.3 KiB
Markdown

# Knowledge Check: Everyday Git
---
**1. What's the difference between `git diff` and `git diff --staged`?**
*Answer:* `git diff` shows unstaged changes (working tree vs. last commit); `git diff --staged`
shows what's currently staged and about to be committed (staging area vs. last commit).
---
**2. Why is `git add .` potentially risky compared to `git add <specific-file>`?**
*Answer:* It stages EVERYTHING currently changed in the directory, which can accidentally
include files you didn't mean to commit — checking `git status` first (or using targeted `git
add`) avoids this.
---
**3. What makes a commit message actually useful months later?**
*Answer:* Describing WHAT changed and ideally WHY, clearly enough that someone (including
future-you) reading `git log` understands the change without re-reading the full diff.
---
**4. You run `git init` in a directory that already has an existing Git repository. What
happens?**
*Answer:* `git init` only needs to run once per project — running it again in an already-
initialized repository is harmless (it won't destroy existing history) but is never actually
necessary.
## Instructor Notes
**Facilitation:** Question 2 is a good moment to establish "check status before staging broadly"
as a house habit for the rest of the course.
**Approximate timing:** 5 minutes.