Ein Versionskontrollsystem ermöglicht es Entwicklern, Änderungen im Code effizient nachzuverfolgen und bei Bedarf gezielt zurückzusetzen. Git ist das weltweit am häufigsten genutzte Versionskontrollsystem und hat sich als Standard in der Softwareentwicklung etabliert.

Inhaltsverzeichnis:
Warum die wichtigsten Git Befehle in jedem Projekt unerlässlich sind
Versionskontrolle ist das Rückgrat moderner Software-Entwicklung. Git hat sich dank dezentraler Architektur, rasanter Geschwindigkeit und flexiblem Branching-Modell zum Quasi-Standard etabliert. Egal ob du Solo-Projekte verwaltest oder in einem global verteilten Team arbeitest – wer Git beherrscht, spart Zeit, vermeidet Datenverlust und kann Änderungen reproduzierbar nachvollziehen.
Dieser Leitfaden richtet sich an zwei Szenarien:
- Lernen: Du startest mit Git und möchtest verstehen, warum und wie die Befehle funktionieren.
- Nachschlagen: Du kennst Git, brauchst aber eine schnelle Erinnerungsstütze für den Arbeitsalltag.
Git installieren und einrichten
Kurzfassung: Installiere Git, setze deinen Namen + E-Mail und wähle (optional) einen Editor.
Installation (Windows, macOS, Linux in Kürze)
- Windows: Offizielles Installer-Paket von https://git-scm.com
- macOS: brew install git (Homebrew) oder Xcode Command Line Tools für die Ausführung von git-befehlen
- Linux: sudo apt install git (Debian/Ubuntu) • sudo dnf install git (Fedora/RHEL)
Tipp: Gib git --version ein, um sicherzustellen, dass Git korrekt installiert ist.
Grundkonfiguration
git config --global user.name "Max Mustermann"
git config --global user.email "max@example.com"
git config --global core.editor "nano"
# oder "code --wait" für VS Code
- --global schreibt die Werte in ~/.gitconfig, sodass alle Repositories sie erben.
- Du kannst projektbezogene Einstellungen später ohne --global überschreiben.
Den Git-Workflow verstehen
Git kennt drei zentrale Ebenen:

- Arbeitsverzeichnis: Entspricht deinem Projektordner.
- Staging-Bereich (Index): Zwischenspeicher für ausgewählte Änderungen ausführen.
- Lokales Repository: Dauerhaft gespeicherte Commits.
Der normale Zyklus lautet also edit → add → commit in deinem remote-repository.
Repositorys erstellen und klonen
Bevor du mit der Arbeit beginnen kannst, musst du ein neues Repository anlegen oder ein bestehendes klonen.
Ein neues Repository anlegen
git init
- Erstellt einen versteckten .git-Ordner im aktuellen Verzeichnis.
- Standard-Branch ist ab Git 2.28 wählbar (git init -b main), sonst master.
Ein bestehendes Repo klonen
git clone https://github.com/orga/projekt.git
- Legt automatisch das Remote origin an.
- Lädt alle Branches; main/master wird ausgecheckt.
Änderungen verfolgen und vorbereiten (Staging)
Um Änderungen gezielt nachzuverfolgen, solltest du zuerst den aktuellen Status deines Arbeitsverzeichnisses in einem Git-Repository prüfen.
Status prüfen
git status
- Zeigt untracked, modified und staged Dateien.
- Nutze regelmäßig, um Überraschungen zu vermeiden.
Dateien zum Staging hinzufügen
git add
# alle Änderungen
git add .
# interaktives Patch-Staging
git add -p
Unterschiede anzeigen
# Arbeitsverzeichnis ↔ Index
git diff
# Index ↔ letzter Commit
git diff --staged
Änderungen speichern (Committen)
git commit -m "Kurz & prägnant: Imperativ, <50 Zeichen>"
Warum gute Commit-Nachrichten?
- Nachvollziehbare Historie
- Effiziente Code-Reviews
- Automatisierte Changelogs
Schnellvariante: git commit -am "Msg" fügt geänderte Dateien automatisch hinzu – nicht untracked Dateien.
Historie ansehen
git log --oneline --graph --decorate --all
- Kompakte Übersicht mit Branch-Verzweigungen.
- Benutze q, um die Ansicht zu verlassen.
Arbeiten mit Remote-Repositorys
Um mit entfernten Repositorys zu arbeiten, musst du zunächst deine Remotes einrichten und verwalten.
Remotes verwalten
# bestehende anzeigen
git remote -v
# neuen hinzufügen
git remote add origin
# ändern
git remote set-url origin
Lokale Commits hochladen – push
git push -u origin main
# -u = tracking-Verbindung herstellen
- Beim nächsten Mal reicht git push an das entfernte repository, um die Änderungen zu übertragen.
Änderungen holen und integrieren
git fetch origin
# nur herunterladen
git merge origin/main
# manuell integrieren
# oder beides in einem Schritt:
git pull origin main
Fetch vs. Pull
- fetch ist sicherer, weil du vor dem Merge prüfen kannst.
- pull --rebase hält die Historie linear, wenn dein Team das wünscht.
Mit Branches arbeiten: isolierte Entwicklung
Branches ermöglichen dir, neue Funktionen oder Änderungen isoliert vom Hauptzweig zu entwickeln.
Branch-Grundbefehle
git branch
# neuen Branch erstellen
git branch feature/login
# zu Branch wechseln
git switch feature/login
# Ältere Variante:
# git checkout feature/login
git switch -c hotfix/bug42
# erstellen & wechseln
Branches zusammenführen
git merge feature/login
# Aktualisieren in aktuellen Branch
-
Fast-Forward: Wenn der aktuelle Branch keine eigenen Commits hat, zeigt er einfach auf die Spitze von feature/login.
-
Three-way Merge: Git erstellt einen neuen Merge-Commit, wenn sich die Historien verzweigt haben.
Branch löschen
git branch -d feature/login
# sicher (löscht nur gemergte)
git branch -D feature/login
# erzwingt Löschen
Merge-Konflikte lösen
-
git pull oder git merge meldet Konflikte.
-
Git markiert die betroffenen Stellen mit <<<<<<<, =======, >>>>>>>.
-
Bearbeite die Datei, wähle die richtige Variante oder kombiniere beide.
-
git add → git commit (oder git merge --continue) schließt den Konflikt ab.
Änderungen rückgängig machen – wenn etwas schiefgeht
Wenn du lokale Änderungen nicht behalten möchtest, kannst du sie gezielt aus dem Arbeitsverzeichnis entfernen.
Änderungen im Arbeitsverzeichnis verwerfen
Wenn du Änderungen an einer Datei verwerfen willst, ohne sie zu committen, kannst du sie mit dem Befehl git restore in den letzten bekannten Zustand zurücksetzen.
git restore
# moderne Syntax
# git checkout --
# ältere Syntax
Staging zurücksetzen
Du kannst eine Datei aus dem Staging-Bereich entfernen, ohne die eigentlichen Änderungen zu verlieren – nutze dafür git restore --staged oder git reset.
git restore --staged
# oder:
git reset
Commits zurückdrehen vs. rückgängig machen
Nicht jeder Commit soll bestehen bleiben – je nach Situation kannst du Änderungen gezielt rückgängig machen oder die Commit-Historie anpassen.
Situation | Befehlswahl | Wirkung |
Commit öffentlich? Wohl ja | git revert | Erstellt neuen Commit, der die Änderung neutralisiert. |
Commit nur lokal, noch nicht gepusht | git reset --soft git reset --mixed git reset --hard | Verschiebt HEAD; --soft behält Staging, --mixed behält Arbeitsverzeichnis, --hard verwirft beides – Vorsicht! |
Faustregel: Revert für geteilte Historien, Reset für lokale Korrekturen.
Unfertige Arbeit parken – Stash
Manchmal möchtest du deine aktuelle Arbeit kurzzeitig zur Seite legen, ohne sie zu committen – genau dafür ist der Stash gedacht.
git stash
# alles weglegen
git stash list
# zeigen auf github
git stash apply
# anwenden (Stash bleibt erhalten)
git stash pop
# anwenden & löschen
git stash drop 0
# gezielt entfernen
Weitere nützliche Git-Befehle
Neben den Grundbefehlen bietet Git eine Vielzahl weiterer Werkzeuge, um gezielt Dateien zu verwalten, Versionen zu markieren oder versehentliche Fehler nachzuvollziehen.
Befehl | Zweck | Beispiel |
git rm | Entfernt Datei & staged Löschung | git rm src/tmp.log |
git mv alt.txt neu.txt | Umbenennen/Verschieben von Dateien in einem Ordner | git mv README.md docs/ |
.gitignore | Unerwünschte Dateien ignorieren | .env, node_modules/, *.log |
git tag v1.0.0 | Versionsmarke setzen in einem neuen git-repository | SemVer unterstützend |
git cherry-pick | Einzelnen Commit in anderen Branch übernehmen | Hotfix-Commit in Release-Branch kopieren |
git reflog | Versteckte Historie aller HEAD-Bewegungen | Lebensretter nach versehentlichem Reset |
Tipps für die tägliche Arbeit mit Git
Für einen reibungslosen Arbeitsalltag mit Git lohnt es sich, bewährte Vorgehensweisen und kleine Hilfsmittel gezielt einzusetzen.
-
Klein, aber häufig committen – erleichtert Reviews und Reverts.
-
Commit-Nachrichten: Imperativ, knapp, Zusatzinfos im Body (z.B. „Fix login: validate email format“).
-
Regelmäßig pullen, um Divergenzen früh zu erkennen und zu aktualisieren.
-
Feature Branch-Workflow oder Trunk-Based Development bewusst wählen und im Team vereinheitlichen.
-
Hooks nutzen (pre-commit, commit-msg) für Tests & Linting vor dem Push.
-
Aliases definieren, z.B.:
git config --global alias.s "status -sb"
git config --global alias.lg "log --oneline --graph --decorate --all"
Fazit & nächste Schritte
Git lässt sich am besten durch praktische Anwendung verstehen – nutze die Grundbefehle regelmäßig und experimentiere in einer sicheren Umgebung, um Sicherheit im Umgang zu gewinnen.
-
Git mental modellieren: Arbeitsverzeichnis → Staging → Repository.
-
Häufigste Befehle beherrschen: status, add, commit, push, pull, branch, merge, restore, stash.
-
Sicheres Troubleshooting: Nutze revert, reset, reflog, bevor Panik aufkommt.
-
Praxis schlägt Theorie: Klone ein Beispiel-Repo, erstelle Branches, löse Konflikte, revertiere Commits.
Weiterführende Ressourcen
Download: Git-Befehle Cheat Sheet
Du möchtest alle Kernbefehle auf einen Blick, um git-befehlen effizient zu nutzen? Weiter unten findest du unser druckbares PDF-Cheat-Sheet – ideal für den Schreibtisch oder die IDE-Sidebar. (Solltest du es nicht sehen, lade die Seite neu oder klicke hier: Cheat-Sheet herunterladen).
Häufige Fragen (FAQ)
Auch erfahrene Nutzer stoßen bei Git immer wieder auf typische Stolperfallen – diese Antworten helfen dabei, schnell wieder die Kontrolle zu gewinnen.
Wie ändere ich die Commit-Nachricht des letzten Commits?
git commit --amend -m "Neue Nachricht"
Hinweis: Nur vor dem Push verwenden, sonst brauchen alle Teammitglieder einen git pull --rebase.
Was bedeutet „detached HEAD“ und ist das schlimm?
Du befindest dich auf einem Commit ohne Branch-Zeiger. Wechsle zurück mit
git switch oder tagge/branche, falls du dort weiterarbeiten willst.
Wie entferne ich versehentlich eingecheckte sensible Daten?
Nutze das git filter-repo-Tool oder git filter-branch (älter), push deine bereinigte Historie force, informiere alle Mitwirkenden und rotiere Passwörter/Tokens – der alte Inhalt bleibt sonst öffentlich einsehbar.
Bonus: Mini-Workshop (30 Minuten)
Zum Abschluss festigst du dein Wissen in einem kompakten Mini-Workshop, der typische Arbeitsschritte und Herausforderungen in einem realistischen Szenario kombiniert.
-
Klone ein Open-Source-Projekt deiner Wahl.
-
Erstelle einen Feature-Branch, z.B. improve-readme.
-
Bearbeite die README.md, committe, pushe.
-
Öffne einen Pull Request auf GitHub/GitLab.
-
Simuliere einen Merge-Konflikt, indem du dieselbe Zeile auf main änderst, löse ihn lokal.
-
Rebase deinen Branch auf aktuellen main, pushe mit --force-with-lease.
Nach diesem Schnelldurchlauf hast du alle wichtigsten Git-Befehle mindestens einmal benutzt!
Schlusswort
Mit diesem Leitfaden hast du nicht nur eine Referenz der wichtigsten Git-Befehle, sondern auch das nötige Hintergrundwissen, um sie souverän einzusetzen – vom ersten git init bis zum komplexen Rebase. Übe kontinuierlich, schau dir die Historie deiner Projekte an und staune, wie viel selbstbewusster du mit jeder Session wirst.
Viel Erfolg beim Versionieren – und happy committing!