Skip to main content
10 free missions · no setup

DEVLAB101 · Git Mastery

When Git breaks at work,
you will know what to do.

Learn to read a repository, diagnose an incident and choose a safe repair — visually or in a simulated terminal.

Open all 10 missions

No account · no real repository at risk · progress saved in this browser.

  • 10open missions
  • 42guided actions
  • 1/10open Live incident
mission-control — team incident
learner@devlab ~/shop $ git rebase origin/mainSuccessfully rebased and updated feature/payment.

Interface, terminal, graph and repository state stay synchronized.

When tutorials stop being enough

Knowing add, commit and push does not prepare you for an incident.

Git feels simple while everything is linear. When history diverges, inspect the state before moving anything.

17:42 · CI

Push rejected: non-fast-forward

A teammate already published. Integrate their work without erasing it.

10:07 · Git

Conflict in checkout.js

Two business rules are valid. Resolve the meaning, not only the markers.

14:20 · Team

My commit disappeared

After a bad reset, find evidence before moving HEAD again.

The method

Move from “which command?” to “which strategy is safe?”

01 · Observe

Read the actual state

Separate files, index, HEAD, local branch and remote before each decision.

02 · Predict

State what will move

Record an expected effect, then compare it with the state actually produced.

03 · Repair

Preserve constraints

Choose an action, resolve conflicts and test the result without touching your computer.

04 · Prove

Explain the strategy

Validate with a claim, observable evidence, a reason and a transfer task.

One action, synchronized evidence

Make the repository visible before making it automatic.

Every decision updates files, index, HEAD, branches and remote. The graph shows actual parents, forks and merges.

Simulated terminalSimulated example

oncall@devlab ~/shop $ git fetch origin --prune

origin/main updated · working tree unchanged

oncall@devlab ~/shop $ git rebase origin/main

CONFLICT: src/api/invoices.js

oncall@devlab ~/shop $ git rebase --continue

Successfully rebased feature/invoices.
Scenario graphHEAD → feature/invoices
  1. 6200ff2export invoices
  2. 6100ff1list invoices
  3. 6300aaaorigin/main · API v3
Repository stateClean
Branch
feature/invoices
Conflicts
0
Result
scenario tests passed
Next action
force-with-lease
One action, synchronized evidenceMake the repository visible before making it automatic.

Every decision updates files, index, HEAD, branches and remote. The graph shows actual parents, forks and merges.

Two levels of practice

Understand the move, then decide under pressure.

Guided missions build the mental model. Live incidents progressively remove the prescribed path and require evidence before publishing.

Guided mission
  1. An explained intent
  2. An effect to predict
  3. Three comparable actions
  4. Evidence of understanding
Live incident
  1. Partial signals
  2. A repository to diagnose
  3. Constraints to preserve
  4. A decision to justify

From first commit to team incident

Ten guided missions and ten incidents to diagnose.

42 guided actions build the mental model. 40 documented decisions power the Live incidents: the first is open and the next ones use the temporary code.

  1. 01
    Build the foundations

    Files, index, commits, branches, remote and first merge.

  2. 02
    Control history

    Rebase, undo, recovery, stash, cherry-pick and bisect.

  3. 03
    Operate a shared repository

    Pull request, team constraints and a cross-cutting final mission.

Live mode

Ten incidents, from everyday mistakes to critical recovery.

The first ticket is playable without a code. Incidents 02 to 10 open with the supplied temporary code.

  1. 01Push rejected at 17:42Common case · Open
  2. 02Two business rules, one fileCommon case · Code required
  3. 03Eren’s “lost” commitRare case · Code required
  4. 04Hotfix during an incomplete featureCommon case · Code required
  5. 05Friday’s PR driftedCommon case · Code required
  6. 06The commit landed on mainCommon case · Code required
  7. 07The bad flag is already sharedCommon case · Code required
  8. 08A secret in the latest local commitRare case · Code required
  9. 09A commit made in detached HEADRare case · Code required
  10. 10A force-push moved releaseRare case · Code required

Useful questions

What to know before starting.

I have never used Git. Is this accessible?

Yes. Mission 01 builds the three Git zones before branches, remotes and incidents.

Can the simulator change my computer?

No. It evaluates deterministic decisions in a fictional repository and never runs a real Git command.

Is the entire guided path free?

Yes. All ten guided missions are open without an account. Live incident 01 is open; incidents 02 to 10 require the temporary code.

Why require a prediction and an explanation?

Because a lucky successful command is not enough. The path asks for a predicted effect, an observed result and a transfer task.

No repository at risk

Start by observing. Finish by justifying.

Open the mission matching your need, or follow all ten in sequence.

Start for free