5.1 KiB
📖 Trainerhandbuch
Dieses Dokument richtet sich an Personen, die diese Git-Schulung durchführen. Es enthält Hinweise zur Vorbereitung, typische Stolpersteine und Vorschläge für Diskussionen.
Vorbereitung vor der Schulung
Checkliste (30 Minuten vorher)
- Repo geklont oder frisch aufgesetzt:
git clone <url> git-schulung - Eigene Git-Konfiguration geprüft:
git config --list - Test-Remote-Repository angelegt (leer, für Modul 05)
- Terminal / Git Bash geöffnet und getestet
- Projektor / Bildschirmübertragung eingerichtet
- Alle Teilnehmenden haben Git installiert (Modul 00 vorab schicken)
- Backup-Plan: USB-Stick mit Git-Installer für alle gängigen Betriebssysteme
Empfohlene Werkzeuge am Rechner des Trainers
- Git (aktuell)
- VS Code mit GitLens-Extension (gute Visualisierung)
- Browser mit GitHub/GitLab Account
Zeitplan und Pausen
| Modul | Dauer | Pause danach |
|---|---|---|
| 00 – Vorbereitung | 10 min | – |
| 01 – Grundkonzepte | 15 min | 5 min Pause |
| 02 – Erste Schritte | 15 min | – |
| 03 – Branches | 15 min | 10 min Pause |
| 04 – Konflikte | 15 min | – |
| 05 – Remote & PRs | 10 min | – |
| 06 – Cheatsheet + Q&A | 10 min | Ende |
Gesamt: ca. 90 Minuten mit Pausen, 70 Minuten ohne.
Typische Stolpersteine bei Anfängern
1. Detached HEAD
Was passiert: Jemand hat direkt einen alten Commit mit git checkout <hash> ausgecheckt.
Was Git sagt:
HEAD detached at a3f9c12
Lösung:
git switch main
Erklärung für Teilnehmende: "HEAD" ist wie ein Lesezeichen. Normalerweise zeigt es auf einen Branch-Namen (wie main). Im "Detached HEAD"-Zustand zeigt es direkt auf einen Commit – kein Branch wird bewegt. Mit git switch main befestigst du das Lesezeichen wieder am richtigen Branch.
2. Falscher Branch
Was passiert: Jemand macht einen Commit auf main, obwohl er auf einem Feature-Branch sein wollte.
Lösung (wenn noch nicht gepusht):
git switch -c feature/mein-feature # Branch erstellen (nimmt den Commit mit)
git switch main
git reset --hard HEAD~1 # Commit von main entfernen
Einfachere Lösung: git cherry-pick erwähnen als Hinweis, nicht als Pflicht.
3. Commit-Nachricht vergessen / schlecht
Was passiert: git commit ohne -m öffnet den Editor. Viele Anfänger wissen nicht, wie sie ihn schließen.
Nano: Ctrl+O, Enter, Ctrl+X
Vim: i zum Editieren, Esc, dann :wq und Enter
Empfehlung: Immer -m "..." verwenden, bis der Workflow sitzt.
4. Tippfehler in Branch-Namen
Was passiert: git switch feautre/login → Fehler.
Lösung:
git branch -m feautre/login feature/login # Branch umbenennen
5. Staging Area vergessen
Was passiert: Jemand ruft git commit -m "..." auf, obwohl nichts gestagtet ist.
Git sagt:
nothing to commit, working tree clean
Erinnerung: Immer git status vor git commit schauen!
6. Merge-Konflikt-Panik
Was passiert: Jemand sieht Konfliktmarker zum ersten Mal und weiß nicht, was zu tun ist.
Tipp: Ruhig bleiben. git merge --abort als Notausgang zeigen. Erklären, dass der Konflikt nur in der Datei ist – nichts ist kaputt.
Diskussionsfragen pro Modul
Nach Modul 01
- "Warum macht eine Staging Area Sinn? Wann würdet ihr nicht alle Änderungen in einen Commit packen?"
Nach Modul 02
- "Wie oft sollte man committen? Nach jeder Zeile? Nach jedem Feature?"
- "Was ist eine gute Commit-Nachricht? Zeigt ein Beispiel aus eurem Alltag."
Nach Modul 03
- "Wann würdet ihr einen Branch anlegen? Immer? Nur bei größeren Features?"
- "Was ist der Unterschied zwischen Branch und Fork?"
Nach Modul 04
- "Was passiert, wenn zwei Leute gleichzeitig dieselbe Datei ändern – wer 'gewinnt'?"
- "Könnt ihr euch einen Fall vorstellen, wo ein Fast-Forward unerwünscht wäre?"
Nach Modul 05
- "Was ist der Vorteil eines Pull Requests gegenüber direktem Push auf main?"
- "Wer sollte einen PR reviewen? Wie lange darf ein PR offen bleiben?"
Repo für die nächste Schulung frisch machen
Führe das Reset-Skript aus:
bash reset-uebung.sh
Das Skript entfernt alle Übungsordner, die Teilnehmende angelegt haben, und stellt sicher, dass das Schulungs-Repo sauber ist. Lies das Skript vorher kurz durch, um sicherzugehen, dass es in deiner Umgebung korrekt funktioniert.
Häufige Fragen (FAQ)
Frage: "Kann ich Git auch ohne GitHub nutzen?" Antwort: Ja! Git ist lokal. GitHub ist nur eine Hosting-Plattform. Du brauchst GitHub erst für Remote-Repos und Zusammenarbeit.
Frage: "Was ist der Unterschied zwischen Git und GitHub?" Antwort: Git ist das Werkzeug (lokal installiert). GitHub ist ein Dienst im Internet, der Git-Repos hostet und zusätzliche Funktionen (PRs, Issues, Actions) bietet.
Frage: "Was ist ein 'origin'?"
Antwort: Ein Kurzname für das Remote-Repo – per Konvention heißt das erste Remote immer origin. Du könntest es auch meinserver nennen.