Skip to content
$ git branch -vv
  feature/export-pdf 7abda0a [origin/feature/export-pdf: gone] Ajoute la fonction export PDF
* main               61d6827 [origin/main] Fusionne feature/export-pdf
# "gone"? The answer takes two minutes.

Git, starting from the situations you actually run into.

Nobody searches for "fetch prune". They search for "I still see a branch that was deleted". Every page starts there, reads in five minutes, and every command shown was actually run.
  1. SymptomWhat you see on screen, exact message included.
  2. DiagnosisWhat happened, in two or three sentences.
  3. SolutionThe commands in order, each with its real output.
  4. Why it worksThe piece of mental model that makes it stick, instead of copying.
  • .gitignore doesn't work, the file is already tracked

    You added .env to .gitignore, and git status keeps seeing it modified. Why ignore rules don't apply to a file already tracked, how to untrack it without deleting it, and the other classic cause, an unreadable .gitignore.

    beginner · Git 2.50
  • A conflict during a merge or a rebase

    "CONFLICT (content) - Merge conflict in README.md". Reading the markers, choosing the right version, continuing or giving it all up. And why HEAD does not mean the same thing in a rebase and in a merge.

    intermediate · Git 2.50
  • A remote branch was deleted, but I still see it

    The branch is gone from GitHub, yet git branch -a still shows it and git fetch changes nothing. What remote-tracking references are, and how git fetch --prune cleans up.

    beginner · Git 2.50

All the others are in the catalogue, sorted by theme and filterable by level. And yours has its place, even if you don’t know the answer.

No output is written by hand. Every situation has a versioned script that replays the scenario in throwaway repositories and prints each command followed by its output. The page copies that result, with the Git version and the date it was run. If your output differs, that’s a mistake on the site, and we want to know. Details in How to read a situation.

Every page exists in French and in English. The content is written in French first, and the French page remains the reference; the commands and their outputs are the same in both languages, down to the commit messages of the example repository, which are in French. A translation that lags behind its French page is a mistake: report it, or fix it, the contribution guide says how.

Situations
The heart of the site. A symptom, a diagnosis, a solution, and why it works.

Understand
Git’s mental model in short pages: commits, branches, remotes, merging. Most trouble comes from there, not from a forgotten option.

Working as a team
Branches, pull requests, review, conventional commits, protections, secrets. What self-taught developers and small teams miss most.

Commands
One page per command, limited to the ones that matter and their useful options, each pointing to the situations where it is used.