Files
Git-Schulung/trainerhandbuch.md
T

5.1 KiB
Raw Blame History

📖 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.