Push rejected: non-fast-forward
A teammate already published. Integrate their work without erasing it.
DEVLAB101 · Git Mastery
Learn to read a repository, diagnose an incident and choose a safe repair — visually or in a simulated terminal.
Open all 10 missionsNo account · no real repository at risk · progress saved in this browser.
Interface, terminal, graph and repository state stay synchronized.
When tutorials stop being enough
Git feels simple while everything is linear. When history diverges, inspect the state before moving anything.
A teammate already published. Integrate their work without erasing it.
Two business rules are valid. Resolve the meaning, not only the markers.
After a bad reset, find evidence before moving HEAD again.
The method
Separate files, index, HEAD, local branch and remote before each decision.
Record an expected effect, then compare it with the state actually produced.
Choose an action, resolve conflicts and test the result without touching your computer.
Validate with a claim, observable evidence, a reason and a transfer task.
One action, synchronized evidence
Every decision updates files, index, HEAD, branches and remote. The graph shows actual parents, forks and merges.
oncall@devlab ~/shop $ git fetch origin --prune
origin/main updated · working tree unchangedoncall@devlab ~/shop $ git rebase origin/main
CONFLICT: src/api/invoices.jsoncall@devlab ~/shop $ git rebase --continue
Successfully rebased feature/invoices.Every decision updates files, index, HEAD, branches and remote. The graph shows actual parents, forks and merges.
Two levels of practice
Guided missions build the mental model. Live incidents progressively remove the prescribed path and require evidence before publishing.
From first commit to team incident
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.
Files, index, commits, branches, remote and first merge.
Rebase, undo, recovery, stash, cherry-pick and bisect.
Pull request, team constraints and a cross-cutting final mission.
Live mode
The first ticket is playable without a code. Incidents 02 to 10 open with the supplied temporary code.
Useful questions
Yes. Mission 01 builds the three Git zones before branches, remotes and incidents.
No. It evaluates deterministic decisions in a fictional repository and never runs a real Git command.
Yes. All ten guided missions are open without an account. Live incident 01 is open; incidents 02 to 10 require the temporary code.
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
Open the mission matching your need, or follow all ten in sequence.