- 1 Section
- 10 Lessons
- unbegrenzt
- Versionsverwaltung mit Git10
Git-Grundbegriffe
In L1 hast du gelernt, warum Versionsverwaltung wichtig ist. Bevor wir mit den Befehlen loslegen, brauchen wir die Begriffswelt: was ist ein Repository? Was ist ein Commit? Was die seltsame Konzepte „HEAD" und „Staging-Area"? Diese Begriffe sind das Vokabular, mit dem Git arbeitet.
Diese Lektion ist die wichtigste Theorie-Lektion des Kurses. Wer hier durchsteigt, versteht alles weitere. Wer sie überspringt, kämpft später mit jedem Befehl. Schau dir die Karten in Ruhe an – und kehr ggf. später zurück.
1) Das Vokabular im Überblick
Die wichtigsten Git-Begriffe – kurz und prägnant. Jeder davon kommt in der IHK-Klausur und im Alltag immer wieder:
.git/-Unterordner im Projektroot. Enthält alle Commits, Branches, Konfigurationen. Local Repo auf deinem Rechner, Remote Repo auf GitHub/GitLab.SHA-1-ID (40 Zeichen Hex, z.B. a3f7c9d...). Commits sind die Grundbausteine der Historie.main (früher master) ist der Standard-Branch. Du erstellst Branches für Features, Bugfixes, Experimente. Vertieft in L5.main), der auf einen Commit zeigt. „Detached HEAD" passiert, wenn HEAD direkt auf einen Commit zeigt – ungewöhnlich, aber möglich.origin. Mit git push sendest du Commits hin, mit git pull holst du sie zurück. Ein Repo kann mehrere Remotes haben.v1.0.0, v2.3.1. Anders als ein Branch bewegt sich ein Tag nicht. Wenn du in 3 Jahren auf das Release zurück willst – tag-checkout, fertig.node_modules/, *.log, .env. Niemals binäre Build-Output oder Secrets committen!2) Die drei Bereiche – Working Directory, Staging, Repository
Das vielleicht wichtigste Konzept von Git: in deinem Projekt-Ordner gibt es nicht nur „den Code", sondern drei verschiedene Bereiche, in denen Dateien existieren können. Eine Datei wandert beim Speichern zwischen diesen Bereichen:
git add verschiebt ihn in die Staging Area – wie eine Bühne, wo Commits vorbereitet werden. git commit macht daraus einen festen Snapshot im Repository. git push überträgt das ins Remote.3) Datei-Zustände
Jede Datei in einem Git-Projekt ist in einem von vier Zuständen. git status zeigt dir, wo deine Dateien gerade sind:
| Zustand | Bedeutung | git status zeigt |
|---|---|---|
| Untracked | Datei existiert im Working Directory, ist Git aber unbekannt (z.B. gerade neu erstellt). | Untracked files |
| Modified | Datei wird von Git getrackt, aber wurde seit letztem Commit geändert. | Changes not staged |
| Staged | Datei ist in der Staging Area, bereit zum nächsten Commit. | Changes to be committed |
| Committed | Datei ist gespeichert im Repository, kein Unterschied zum Working Directory. | nothing to commit |
git status. Bei Unsicherheit immer als erstes. Es zeigt dir, welche Dateien in welchem Zustand sind und welche Befehle als nächstes Sinn machen. Eine Datei kann gleichzeitig „modified" UND „staged" sein – wenn nach dem Add nochmal geändert wurde. Dann ist die alte Version im Stage, die neue im Working Directory.4) Was ist ein Commit wirklich?
„Snapshot" haben wir oben gesagt. Aber was genau steckt drin? Ein Commit besteht aus diesen Daten:
5) Der Commit-Graph – Klick durch eine Mini-Historie
Commits bilden einen gerichteten azyklischen Graphen (DAG). Jeder Commit zeigt auf seinen Vorgänger (manchmal mehrere). Hier kannst du eine Mini-Historie nachvollziehen – klick „Weiter":
6) HEAD vs. Branch – der Unterschied
HEAD und Branch werden gerne verwechselt. Der Unterschied ist subtil aber wichtig:
- Branch: ein fixer Name wie
main,feature/login. Zeigt immer auf den letzten Commit dieser Linie. - HEAD: ein spezieller Pointer, der zeigt, „wo du gerade arbeitest". Normalerweise zeigt HEAD auf einen Branch (z.B.
main), der wiederum auf einen Commit zeigt. - Detached HEAD: HEAD zeigt direkt auf einen Commit, nicht auf einen Branch. Passiert beim Checkout eines Tags oder eines alten Commits. Neue Commits hängen dann „in der Luft" – kein Branch fängt sie auf.
Klausur-Fakt: HEAD ist eine Datei in .git/HEAD, die einen Branch-Namen oder einen Commit-Hash enthält. Mehr nicht.
7) Was ist origin?
Wenn du ein Repo von GitHub clonest, bekommst du automatisch einen Remote namens origin. Das ist Konvention – origin ist der Standardname, du könntest ihn anders nennen.
Bei Befehlen wie git push origin main bedeutet das: schick meinen lokalen main-Branch zum Remote origin. Ein Repo kann mehrere Remotes haben (z.B. origin = GitHub, backup = eigener Server). Mehr in L4.
8) Klausur-Fakten zu Git-Architektur
Was die IHK gerne abfragt:
- Git ist verteilt (DVCS), nicht zentral – jeder Entwickler hat die volle Historie.
- Ein Commit ist ein vollständiger Snapshot, kein Delta.
- SHA-1-Hashes identifizieren Commits eindeutig.
- Die drei Bereiche: Working Directory, Staging Area (Index), Repository.
- HEAD zeigt auf den aktuellen Branch (meist), Branch zeigt auf einen Commit.
- main ist der Standard-Branch (früher: master, in 2020 wegen Begriffs-Konnotation umbenannt).
- .gitignore bestimmt, welche Dateien Git ignoriert.
Zusammenfassung
Git-Kernbegriffe: Repository (Projekt-Container mit .git/), Commit (Snapshot mit SHA-1-Hash, Autor, Nachricht, Parent), Branch (Pointer auf Commit, parallele Entwicklungslinie), HEAD (zeigt auf aktuellen Branch). Drei Bereiche: Working Directory (Editor) → Staging Area (Index) → Repository (Snapshot). Datei-Zustände: untracked, modified, staged, committed. Remote: Standardname origin. Tag: fester Name für einen Commit (Releases). Nächste Lektion: Grundlegende Befehle.
