Warum die Grundlagen so wichtig sind
Git hat viele mächtige Features. Aber am Kern stehen drei Konzepte, die jeder verstehen muss:
- Commits → kleine Speicherpunkte in der Historie.
- Branches → parallele Entwicklungszweige.
- Merges → das Zusammenführen verschiedener Zweige.
Wer diese Bausteine versteht, hat schon 80 % des Git-Wissens in der Tasche.
Commits – Schnappschüsse deiner Arbeit
Was ist ein Commit?
Ein Commit ist eine Art „Foto“ deines Projekts zu einem bestimmten Zeitpunkt.
- Enthält alle Änderungen, die du seit dem letzten Commit gemacht hast.
- Hat eine eindeutige ID (SHA-1-Hash, z. B.
a1b2c3d4...
). - Speichert Metadaten: Autor, E-Mail, Datum, Commit-Message.
👉 Commits sind unveränderbar. Das gibt Sicherheit: Die Historie kann nicht einfach umgeschrieben werden.
Der Weg zum Commit
Ein Commit entsteht in drei Schritten:
- Ändern – Du bearbeitest Dateien im Arbeitsverzeichnis.
- Stagen – Du sagst Git, welche Änderungen du aufnehmen willst.
git add index.html
Oder alle Änderungen:git add .
- Committen – Du erstellst den Schnappschuss.
git commit -m "Neue Startseite erstellt"
Commit-Messages
Eine gute Commit-Nachricht ist Gold wert. Sie sollte:
- kurz und prägnant sein.
- im Präsens formuliert werden („Füge Login hinzu“, nicht „Login hinzugefügt“).
- erklären, was geändert wurde, nicht unbedingt wie.
👉 Beispiel:
git commit -m "Implementiere Login-Formular mit Validierung"
Historie anzeigen
Mit git log
kannst du die Commits sehen:
commit 1a2b3c4d
Author: Max Mustermann <max@example.com>
Date: Mon Sep 14 12:34:56 2025 +0200
Implementiere Login-Formular mit Validierung
Nützlich:
git log --oneline
→ kompaktes Log.git log --graph
→ zeigt Branches und Merges visuell.
Branches – parallele Entwicklungszweige
Was ist ein Branch?
Ein Branch ist ein Zeiger auf eine Reihe von Commits.
- Der Standard-Branch heißt meistens
main
. - Neue Branches erlauben Experimente und Features, ohne den Hauptcode zu gefährden.
👉 Man kann Branches wie parallele Zeitlinien sehen.
Branch erstellen
git branch feature-login
Damit ist ein neuer Branch angelegt – er zeigt momentan auf denselben Commit wie main
.
In den Branch wechseln
git checkout feature-login
oder moderner:
git switch feature-login
Ab jetzt machst du alle Änderungen im neuen Branch.
Branches anzeigen
git branch
zeigt alle Branches, ein *
markiert den aktuellen.
Typischer Workflow mit Branches
- Feature-Branches → für neue Funktionen.
- Bugfix-Branches → für schnelle Korrekturen.
- Release-Branches → um stabile Versionen vorzubereiten.
👉 Vorteil: Der main
-Branch bleibt stabil und produktionsbereit.
Merges – das Zusammenführen
Was ist ein Merge?
Ein Merge kombiniert die Arbeit aus zwei Branches.
- Typischer Fall: Ein Feature-Branch wird in
main
integriert.
Merge durchführen
- Zurück in den Hauptbranch wechseln:
git checkout main
- Merge starten:
git merge feature-login
Automatischer Merge
Wenn es keine widersprüchlichen Änderungen gibt, läuft der Merge automatisch:
Updating a1b2c3d..d4e5f6g
Fast-forward
index.html | 5 +++++
1 file changed, 5 insertions(+)
👉 „Fast-forward“ bedeutet: Der Branch wurde einfach nach vorne bewegt.
Merge-Konflikte
Passiert, wenn dieselbe Datei in beiden Branches unterschiedlich geändert wurde.
Beispiel:
- In
main
steht inindex.html
:<h1>Hallo Welt</h1>
- In
feature-login
steht:<h1>Login-Seite</h1>
Nach dem Merge zeigt Git den Konflikt:
<<<<<<< HEAD
<h1>Hallo Welt</h1>
=======
<h1>Login-Seite</h1>
>>>>>>> feature-login
👉 Entwickler muss entscheiden, welche Version bleibt.
Konflikte lösen
- Datei manuell bearbeiten.
- Konfliktmarker (
<<<<<<<
,=======
,>>>>>>>
) entfernen. - Änderungen als gelöst markieren:
git add index.html git commit
Visualisierung der Grundlagen
Man kann sich die Arbeit mit Git wie einen Baum mit Ästen vorstellen:
- Commits = Knoten im Baum.
- Branches = Äste, die auf bestimmte Knoten zeigen.
- Merge = das Zusammenwachsen zweier Äste.
So bleibt der Code übersichtlich und strukturiert, auch wenn viele Leute parallel daran arbeiten.
Praktisches Beispiel
1. Neues Repository
git init meinprojekt
cd meinprojekt
git config user.name "Max"
git config user.email "max@example.com"
2. Erste Datei
echo "Hallo Welt" > index.html
git add index.html
git commit -m "Erstelle Startseite"
3. Branch erstellen
git branch feature-login
git switch feature-login
4. Neue Datei im Branch
echo "<form>Login</form>" > login.html
git add login.html
git commit -m "Füge Login-Seite hinzu"
5. Zurück zu main und mergen
git switch main
git merge feature-login
👉 Ergebnis: Beide Dateien (index.html
+ login.html
) sind jetzt im main
-Branch.
Best Practices
- Kleine Commits → Jede Änderung sollte ein klarer, abgeschlossener Schritt sein.
- Sinnvolle Branch-Namen → z. B.
feature/login-form
statttest1
. - Commit-Messages → beschreiben, was passiert ist.
- Regelmäßig mergen → verhindert große Konflikte.
Schreibe einen Kommentar