Skip to content

Practice: Why git exists

Answer each in your own words first, then open the answer to check. The goal is not perfect recall; the goal is to verify the mental model landed.

Q1. A team has been managing a shared document by emailing copies to each other and naming files proposal-v3-revised-jay-final.docx. List three concrete problems they will hit within their next month of work that version control would solve.

Show answer

Three problems the proposal-v3-revised-jay-final team will hit:

  • Two people will edit at the same time and one set of edits will be lost when the second person sends their version
  • Nobody will be sure which file is the latest approved version when there are nine versions in the folder
  • Recovering a specific past state (say, the version sent to the client last week) will require digging through email attachments or guessing at file names

Q2. Explain the snapshot mental model to someone who has never used git. Use no jargon. Use one analogy that is not the polaroid analogy from the lesson.

Show answer

One acceptable analogy: a writer keeping a journal where every page is an exact copy of the entire manuscript at the moment that page was written. Page 47 is the full manuscript as of November 3. Page 48 is the full manuscript as of November 4. To see how the manuscript looked on November 3, open page 47. To compare November 3 and November 4, place page 47 and page 48 side by side.

Q3. A new developer says: “Git tracks the differences between versions of a file.” This is not the mental model the lesson teaches. What is wrong with the difference-tracking framing, and why does the lesson recommend the snapshot framing instead?

Show answer

The difference-tracking framing is wrong because it implies git stores chains of edits rather than complete states. The implication breaks down when you encounter branches and merges (which are sequences of snapshots, not sequences of edits) and when you encounter checkout (which loads a complete snapshot, not a replay of edits). The snapshot framing is correct conceptually; the diff-tracking framing is how git stores data efficiently, which is an implementation detail.

Q4. Centralized version control (like Subversion) and distributed version control (like git) differ in one architectural detail: where the canonical project history lives. State that detail in one sentence, then explain one practical consequence for a developer working on a long flight.

Show answer

In centralized version control, the canonical history lives only on the central server; in distributed version control, every clone is a complete copy of the canonical history. Practical consequence for a developer on a long flight: with git, they can commit work, browse history, and create branches without internet; with a centralized system, they would be locked out of every history-related operation until they land.

Q5. A product manager asks: “Why does our engineering team always talk about branches? Why don’t they just edit the main code?” Using only what L1 covers, give a one-paragraph answer that does not require knowing what a branch is in detail.

Show answer

Engineering teams use branches because branches let multiple developers work on different changes at the same time without stepping on each other. Each branch is a separate sequence of saved checkpoints. When the work is done, the branch is merged back into the main project. Without branches, two developers editing the same project would constantly overwrite each other or have to coordinate every change manually. Branches are how teams scale coordination without scaling overhead.

Scenario A. A two-person consulting firm shares contract templates between them. They edit the same files, do not use version control, and have hit overwrite collisions twice in the last year (small projects, both times resolved by remembering what was lost). Do they need version control? Defend your answer using the three signs from the lesson.

Show answer

The two-person consulting firm hits two of the three signs (multiple editors, mistakes have non-trivial recovery cost based on the prior collisions). They need version control. The size of their projects is irrelevant; the failure mode (overwrite collisions) is exactly what version control prevents.

Scenario B. A solo blogger writes 800-word posts, publishes them, and never edits them after publication. They want to know if they need version control. Defend your answer.

Show answer

The solo blogger does not need version control under the three-signs test. Single author, no need to recover earlier states (posts are not revised after publication), low mistake cost (typos in blog posts are recoverable). Version control would not hurt but would not pay off. They might still want it for personal organization or to enable future collaboration.

Scenario C. A small engineering team is debating whether to set up git for a new project that is currently a single shell script of about 200 lines. The script has been edited four times in two days and broken twice (recovered by retyping from memory). One team member says “it is too small for version control.” Defend or rebut that position using the three signs.

Show answer

The size argument is wrong. The 200-line script has been edited four times in two days and broken twice. That is two of the three signs (evolves over time AND mistake consequences are real, since the script has actually broken). Version control should be set up immediately. The setup cost is minutes; the cost of one more bad edit without recovery is hours.

Q. What is the single sentence definition of version control that L1 uses?
A.

A system that records changes to a file or set of files over time so that any specific version can be recalled later.

Q. What is the mental model L1 teaches for how git stores history?
A.

Snapshots of project state over time. Every commit is a complete picture of every file in the project at that moment.

Q. Why is the snapshot model preferable to the difference-tracking model when teaching git?
A.

Because every other git command (commit, checkout, diff, branch, merge) becomes coherent if you start from snapshots, but confusing if you start from differences. The difference-tracking model is how git stores data efficiently under the hood, not how it conceptualizes history.

Q. Name three practical advantages of distributed version control over centralized version control.
A.

Offline work, resilience against central server loss, and cheap local branching.

Q. What are the three signs that a project needs version control?
A.

More than one person edits the project, the project evolves over time and earlier versions might matter, and the consequences of a mistake are non-trivial.

Q. Why is L1 entirely command-free?
A.

Because the mental model is what makes commands coherent later. Teaching commands first leads to memorized syntax without understanding. Teaching the model first makes commands sensible when they appear in L2.

Q. For a development manager or technical product manager who never runs a git command, what is the practical value of understanding the snapshot mental model?
A.

It is the foundation for understanding the team-process implications of workflow choices that will be covered in Phase 3. Knowing snapshots makes branches, releases, hotfixes, and rollbacks legible as team-process decisions, not just engineering commands.

Q. Which lesson introduces the first git commands?
A.

L2 (Your first repo).