Genauigkeit der Visualisierungen
Nichts auf der Bühne ist von Hand gezeichnet. Jede Visualisierung ist eine Liste von Git-Befehlen, die ein Git-Simulator in deinem Browser ausführt, der in die Website eingebaut ist. Die Terminalausgabe wird von ihm erzeugt, und jede Animation ergibt sich aus dem, was sich im Repository tatsächlich geändert hat. Damit der Simulator ehrlich bleibt, wird vor jedem Release jeder Schritt in echtem Git 2.48 wiederholt, und beide Ausgaben werden Zeile für Zeile verglichen.
Git-Befehle
| Befehl | Ausgabe vs. echtes Git | Status |
|---|---|---|
git add | 67 Schritte | Geprüft |
git commit | 133 Schritte | Geprüft |
git reset | 29 Schritte | Geprüft |
git branch | 69 Schritte | Geprüft |
git checkout | 58 Schritte | Geprüft |
git merge | 39 Schritte | Geprüft |
git rebase | 48 Schritte | Geprüft |
git cherry-pick | 48 Schritte | Geprüft |
git stash | 50 Schritte | Geprüft |
git fetch | 26 Schritte | Geprüft |
git pull | 80 Schritte | Geprüft |
git push | 89 Schritte | Geprüft |
git log | 24 Schritte | Geprüft |
git status | 23 Schritte | Geprüft |
git diff | 22 Schritte | Geprüft |
git restore | 18 Schritte | Geprüft |
git rm | 11 Schritte | Geprüft |
git mv | 3 Schritte | Geprüft |
git clean | 22 Schritte | Geprüft |
git switch | 24 Schritte | Geprüft |
git tag | 18 Schritte | Geprüft |
git revert | 16 Schritte | Geprüft |
git show | 10 Schritte | Geprüft |
git reflog | 8 Schritte | Geprüft |
git init | 9 Schritte | Geprüft |
git clone | 14 Schritte | Geprüft |
git config | 13 Schritte | Geprüft |
git remote | 8 Schritte | Geprüft |
git blame | 12 Schritte | Geprüft |
git annotate | 3 Schritte | Geprüft |
git grep | 20 Schritte | Geprüft |
git describe | 15 Schritte | Geprüft |
git shortlog | 13 Schritte | Geprüft |
git show-branch | 4 Schritte | Geprüft |
git whatchanged | 3 Schritte | Geprüft |
git version | 3 Schritte | Geprüft |
git help | 6 Schritte | Geprüft |
git notes | 18 Schritte | Geprüft |
git bisect | 25 Schritte | Geprüft |
git worktree | 12 Schritte | Geprüft |
git sparse-checkout | 17 Schritte | Geprüft |
git archive | 13 Schritte | Geprüft |
git bundle | 10 Schritte | Geprüft |
git format-patch | 10 Schritte | Geprüft |
git am | 5 Schritte | Geprüft |
git range-diff | 4 Schritte | Geprüft |
git merge-tree | 4 Schritte | Geprüft |
git rerere | 9 Schritte | Geprüft |
git fsck | 10 Schritte | Geprüft |
git fast-export | 7 Schritte | Geprüft |
Erklärt, nicht animiert (22)
Der Simulator kann sie nicht ehrlich zeigen (grafische Werkzeuge, externe Programme, Speicher-Interna, Signaturen, Befehle neuer als Git 2.48), deshalb erklärt ihre Seite sie. Es gibt keine Animation, die mit echtem Git verglichen werden könnte.
Szenarien aus der Praxis
| Szenario | Ausgabe vs. echtes Git | Status |
|---|---|---|
| Dein erster Git-Commit | 10 Schritte | Geprüft |
| Ein Repository klonen | 8 Schritte | Geprüft |
| Den letzten Commit rückgängig machen | 13 Schritte | Geprüft |
| Feature-Branch-Workflow | 14 Schritte | Geprüft |
| Einen Merge-Konflikt lösen | 10 Schritte | Geprüft |
| Hotfix für ein Produktions-Release | 12 Schritte | Geprüft |
| Einen PR auf den neuesten main rebasen | 11 Schritte | Geprüft |
| Saubere Historie vor dem Merge | 10 Schritte | Geprüft |
| Verlorene Arbeit retten | 10 Schritte | Geprüft |
| Einen fehlerhaften Merge zurücknehmen | 9 Schritte | Geprüft |
| Dringender Fix mitten im Feature | 12 Schritte | Geprüft |
| Versionen taggen und ausliefern | 9 Schritte | Geprüft |
| Einen Commit fürs Review aufteilen | 8 Schritte | Geprüft |
| Gemergte Branches aufräumen | 11 Schritte | Geprüft |
| Flache Klone in CI | 6 Schritte | Geprüft |
Wie wird das geprüft?
Terminalausgabe
Ein Test spielt jede Lektion in einem echten Git- 2.48 Repository mit denselben Dateien und Zeitstempeln nach und vergleicht Ausgabe, Exit-Status und Editorinhalt jedes Befehls mit dem, was die Website zeigt. Nur maschinenspezifische Details werden vereinheitlicht (Hashes, Pfade, Übertragungsgeschwindigkeit).
Animationen
Knoten, Branch-Labels, HEAD, die drei Dateibereiche und das Remote werden aus dem Zustand des Repositorys nach jedem Befehl gezeichnet – das Bild kann also nur zeigen, was der Simulator tatsächlich getan hat (und das wird mit echtem Git geprüft). Jede Lektion prüft außerdem beim Build ihre Kernaussagen (Branch, sauberer Arbeitsbaum, Konflikte, Commit-Betreff).
Bei jedem Build geprüft
Eine Lektion, die gegen eine dieser Regeln verstößt, stoppt den Build:
- Jeder Befehl läuft; Schritte, die scheitern sollen, scheitern wirklich
- Die Erwartungen der Lektion stimmen (Branch, sauberer Arbeitsbaum, Konflikte, HEAD-Commit)
- Keine handgeschriebenen Ausgaben, Hashes oder Positionen
- Jeder Schritt zeigt etwas (Ausgabe oder sichtbare Änderung)
- Options-Lektionen verwenden ihre Option wirklich
- Empfehlungs-Badges stimmen mit der Dokumentation der Option überein
- Auf jeder Seite dasselbe Start-Repository
- Eine Idee pro Schritt, in einem ganzen Satz erklärt
Grenzen: Einige Optionen hängen von Dingen außerhalb des Repositorys ab (deinem Editor, Dateirechten, verschachtelten Repositorys, Zeilenenden, Sparse Checkout). Sie werden statt mit einer Animation mit einer „So funktioniert’s“-Karte erklärt. Etwas gefunden, das von deinem Git abweicht? Melde es.