Bevor wir mit Git arbeiten, ist es wichtig, die grundlegenden Konzepte zu verstehen. Git verwendet eine eigene Terminologie, die zunächst ungewohnt wirken kann – aber die Konzepte dahinter sind logisch und nachvollziehbar.
Repository (Projektarchiv)¶
Ein Repository (oft abgekürzt als “Repo”) ist ein Projektordner, den Git überwacht. Es enthält:
Alle Ihre Dateien (Python-Skripte, Daten, Dokumentation)
Die gesamte Versionsgeschichte (wer hat wann was geändert)
Git-Konfiguration (im versteckten Ordner
.git)
Ein Repository kann lokal auf Ihrem Computer oder remote auf einem Server (GitHub, GitLab) liegen.
Die drei Bereiche in Git¶
Git arbeitet mit drei wichtigen Bereichen. Das Verständnis dieser Bereiche ist zentral für die Arbeit mit Git:
1. Working Directory (Arbeitsverzeichnis)¶
Das Working Directory ist Ihr normaler Projektordner – so wie Sie ihn im Dateimanager sehen. Hier bearbeiten Sie Ihre Dateien mit Ihrem Texteditor oder Ihrer IDE.
Beispiel: Sie öffnen taschenrechner.py in VS Code und fügen eine neue Funktion hinzu. Diese Änderung befindet sich zunächst nur im Working Directory.
2. Staging Area (Bereitstellungsbereich)¶
Die Staging Area ist ein Zwischenbereich. Hier sammeln Sie alle Änderungen, die Sie in den nächsten Commit aufnehmen möchten.
Warum braucht man das? Stellen Sie sich vor, Sie haben an mehreren Dateien gearbeitet:
taschenrechner.py: Neue Funktion für Divisionstatistik.py: Bugfixdokumentation.md: Rechtschreibfehler korrigiert
Mit der Staging Area können Sie entscheiden: “Ich möchte nur die Änderungen an taschenrechner.py und statistik.py committen, aber dokumentation.md erst später.” So können Sie thematisch zusammengehörige Änderungen bündeln.
Befehl: git add dateiname fügt eine Datei zur Staging Area hinzu.
3. Repository / Versionsgeschichte¶
Wenn Sie einen Commit erstellen, werden alle Änderungen aus der Staging Area dauerhaft in der Versionsgeschichte gespeichert. Ein Commit ist wie ein Schnappschuss Ihres Projekts zu einem bestimmten Zeitpunkt.
Befehl: git commit -m "Beschreibung" erstellt einen Commit.
Was ist ein Commit?¶
Ein Commit ist eine gespeicherte Version Ihres Projekts. Jeder Commit enthält:
Änderungen: Was wurde geändert (z.B. “Zeile 42 in
taschenrechner.pyhinzugefügt”)Commit-Message: Kurze Beschreibung der Änderung (z.B. “Divisionsfunktion hinzugefügt”)
Metadaten: Autor*in, Zeitstempel, eindeutige ID (Hash)
Verweis auf vorherigen Commit: Commits bilden eine Kette
Hash: a1b2c3d
Autor: Erika Mustermann
Datum: 2025-10-15
Message: “Projekt initialisiert”
Hash: e4f5g6h
Autor: Erika Mustermann
Datum: 2025-10-16
Message: “Addition implementiert”
Parent: a1b2c3d
Hash: i7j8k9l
Autor: Erika Mustermann
Datum: 2025-10-17
Message: “Division hinzugefügt”
Parent: e4f5g6h
Commits bilden eine Kette: Jeder Commit zeigt auf seinen Vorgänger. So entsteht eine Timeline der Projektentwicklung.
Visualisierung: Der Git-Workflow¶
Hier ein typischer Arbeitsablauf mit Git:
Der Status-Befehl¶
Der wichtigste Befehl, um zu verstehen, was gerade wo ist:
git statusDieser Befehl zeigt:
Welche Dateien verändert wurden (im Working Directory)
Welche Dateien für den Commit bereitstehen (in der Staging Area)
Welche Dateien noch nicht von Git überwacht werden (untracked)
Beispiel-Ausgabe:
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: taschenrechner.py
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: dokumentation.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
testdaten.csvInterpretation:
taschenrechner.pyist in der Staging Area → wird beim nächsten Commit gespeichertdokumentation.mdwurde geändert, aber noch nicht zur Staging Area hinzugefügttestdaten.csvist eine neue Datei, die Git noch nicht kennt
Zusammenfassung der Konzepte¶
| Konzept | Beschreibung |
|---|---|
| Repository | Projektordner mit Versionsgeschichte |
| Working Directory | Ihr aktueller Arbeitsbereich |
| Staging Area | Änderungen, die für den nächsten Commit vorgemerkt sind |
| Commit | Gespeicherter Schnappschuss des Projekts |
| git status | Zeigt den aktuellen Zustand aller drei Bereiche |
Im nächsten Kapitel setzen wir diese Konzepte in die Praxis um und erstellen unser erstes Repository!