Ch. 16 · Git & CI/CD

Git Working Tree, Index and Commit Snapshots

Git Working Tree, Index and Commit Snapshots. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readbeginnerupdated Oct 3, 2026

The working tree contains editable files; the index selects the next snapshot; a commit records that snapshot. These can differ simultaneously.

Before you start

You should understand commits, branches, the working tree and the staging area. Draw the commit graph before changing history. Try commands in a disposable repository with a clean working tree so you can observe exactly which references and files each operation changes.

The practical goal is to reason through this situation: A file can have staged changes plus additional unstaged edits. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: Inspect editable content

The working file may include changes not staged yet.

Step 2: Inspect the selected snapshot

The index contains what the next commit will record.

Step 3: Review both differences

Use staged and unstaged diffs separately before committing.

Worked scenario

A file can have staged changes plus additional unstaged edits.

git status --short
git diff
git diff --cached
Terminal

After staging version A, editing the file into version B does not automatically update the index. The commit still records A unless the newer edits are staged. These inspection commands reveal the two independent comparisons without changing either snapshot.

Common mistake

Assuming commit includes every visible edit can omit recent work.

Verify the behavior

Stage a disposable file, edit it again and predict each diff before reading it.

Interview exercise

Inspect the next commit.

Answer and reasoning

Review staged diff separately from working-tree diff, then stage only the intended final content.

Continue learning

Compare the scenario with the Git and CI/CD interview questions and test your understanding with the Git and CI/CD MCQs. For terminology and implementation details, consult the reference material.

More in Git & CI/CD

read ✓Git & CI/CD · easy

Git Detached HEAD

What a detached HEAD is, when it happens, and how to keep commits made in that state.

~2 min readread →
read ✓Git & CI/CD · mid

Git Hooks and Local Automation

Automate checks with client and server hooks, share them through a framework, and enforce the same rules in CI where they cannot be bypassed.

~2 min readread →
read ✓Git & CI/CD · hard

Git LFS for Large Files

Track large binaries with Git LFS, keep pointer files in the repository, and plan for LFS storage and access.

~2 min readread →
esc