Git Cheat Sheet Deutsch
July 8, 2025 · View on GitHub

Dieses umfassende Git-Cheat-Sheet hilft Ihnen dabei, Git-Befehle zu beherrschen, ohne alles auswendig zu lernen. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Leitfaden bietet eine schnelle Referenz für wichtige Git-Operationen.
📖 Über
Dieses umfassende Git-Cheat-Sheet hilft Ihnen dabei, Git-Befehle zu beherrschen, ohne alles auswendig zu lernen. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Leitfaden bietet eine schnelle Referenz für wichtige Git-Operationen.
Beiträge willkommen! Fühlen Sie sich frei:
- Grammatikfehler zu korrigieren
- Neue Befehle hinzuzufügen
- In Ihre Sprache zu übersetzen
- Erklärungen zu verbessern
📋 Inhaltsverzeichnis
- 📖 Über
- 🔧 Setup
- ⚙️ Konfigurationsdateien
- 🆕 Repository erstellen
- 📝 Lokale Änderungen
- 🔍 Suchen
- 📖 Commit-Historie
- 📁 Verschieben / Umbenennen
- 🌿 Branches & Tags
- 🔄 Aktualisieren & Veröffentlichen
- 🔀 Merge & Rebase
- ↩️ Rückgängig machen
- 📦 Zwischenspeichern (Stash)
- 🌊 Git Flow
- 💡 Nützliche Tipps
- 🌍 Andere Sprachen
- 🤝 Beitragen
- 📄 Lizenz
- 📖 Zusätzliche Ressourcen
🔧 Setup
Konfiguration anzeigen
Aktuelle Konfiguration anzeigen:
git config --list
Repository-Konfiguration anzeigen:
git config --local --list
Globale Konfiguration anzeigen:
git config --global --list
System-Konfiguration anzeigen:
git config --system --list
Benutzer-Konfiguration
Namen für Versionsverlauf festlegen:
git config --global user.name "[Vorname Nachname]"
E-Mail-Adresse festlegen:
git config --global user.email "[gültige-email]"
Anzeige- & Editor-Einstellungen
Automatische Befehlszeilen-Farbgebung aktivieren:
git config --global color.ui auto
Globalen Editor für Commits festlegen:
git config --global core.editor vi
⚙️ Konfigurationsdateien
| Bereich | Ort | Befehlsflag |
|---|---|---|
| Repository | <repo>/.git/config | --local |
| Benutzer | ~/.gitconfig | --global |
| System | /etc/gitconfig | --system |
🆕 Repository erstellen
Existierendes Repository klonen
Über SSH:
git clone ssh://benutzer@domain.com/repo.git
Über HTTPS:
git clone https://domain.com/benutzer/repo.git
Neues Repository initialisieren
Repository im aktuellen Verzeichnis erstellen:
git init
Repository in spezifischem Verzeichnis erstellen:
git init <verzeichnis>
📝 Lokale Änderungen
Status & Unterschiede prüfen
Arbeitsverzeichnis-Status anzeigen:
git status
Änderungen in verfolgten Dateien anzeigen:
git diff
Änderungen in spezifischer Datei anzeigen:
git diff <datei>
Änderungen bereitstellen
Alle aktuellen Änderungen hinzufügen:
git add .
Spezifische Dateien hinzufügen:
git add <datei1> <datei2>
Interaktiv Teile einer Datei hinzufügen:
git add -p <datei>
Änderungen committen
Alle verfolgten Dateiänderungen committen:
git commit -a
Bereitgestellte Änderungen committen:
git commit
Mit Nachricht committen:
git commit -m 'Nachricht hier'
Bereitstellung überspringen und mit Nachricht committen:
git commit -am 'Nachricht hier'
Mit spezifischem Datum committen:
git commit --date="`date --date='n day ago'`" -am "<Commit-Nachricht hier>"
Letzten Commit ändern
⚠️ Warnung: Veröffentlichte Commits nicht ändern!
Letzten Commit ergänzen:
git commit -a --amend
Ergänzen ohne Commit-Nachricht zu ändern:
git commit --amend --no-edit
Committer-Datum ändern:
GIT_COMMITTER_DATE="datum" git commit --amend
Autor-Datum ändern:
git commit --amend --date="datum"
Änderungen zwischenspeichern
Aktuelle Änderungen temporär speichern:
git stash
Letzte gespeicherte Änderungen anwenden:
git stash apply
Spezifischen Stash anwenden:
git stash apply stash@{stash_nummer}
Verwenden Sie
git stash list, um verfügbare Stashes zu sehen
Letzten Stash entfernen:
git stash drop
Nicht committete Änderungen zu anderem Branch verschieben:
git stash
git checkout branch2
git stash pop
🔍 Suchen
Text-Suche
Text in allen Dateien suchen:
git grep "Hallo"
In spezifischer Version suchen:
git grep "Hallo" v2.5
Commit-Suche
Commits finden, die spezifisches Schlüsselwort eingeführt haben:
git log -S 'schlüsselwort'
Mit regulärem Ausdruck suchen:
git log -S 'schlüsselwort' --pickaxe-regex
📖 Commit-Historie
Basis-Historie
Alle Commits anzeigen (detailliert):
git log
Commits anzeigen (eine Zeile je Commit):
git log --oneline
Commits von spezifischem Autor anzeigen:
git log --author="benutzername"
Änderungen für spezifische Datei anzeigen:
git log -p <datei>
Erweiterte Historie
Branches vergleichen:
git log --oneline <origin/master>..<remote/master> --left-right
Anzeigen, wer was wann geändert hat:
git blame <datei>
Referenz-Logs
Referenz-Log anzeigen:
git reflog show
Referenz-Log löschen:
git reflog delete
📁 Verschieben / Umbenennen
Datei umbenennen:
git mv Index.txt Index.html
🌿 Branches & Tags
Branches auflisten
Lokale Branches auflisten:
git branch
Alle Branches auflisten (lokal + remote):
git branch -a
Remote Branches auflisten:
git branch -r
Zusammengeführte Branches auflisten:
git branch --merged
Branches wechseln & erstellen
Zu existierendem Branch wechseln:
git checkout <branch>
Neuen Branch erstellen und dorthin wechseln:
git checkout -b <branch>
Zum vorherigen Branch wechseln:
git checkout -
Branch von existierendem Branch erstellen:
git checkout -b <neuer_branch> <existierender_branch>
Branch von spezifischem Commit erstellen:
git checkout <commit-hash> -b <neuer_branch_name>
Branch ohne Wechsel erstellen:
git branch <neuer-branch>
Tracking-Branch erstellen:
git branch --track <neuer-branch> <remote-branch>
Branch-Operationen
Einzelne Datei von anderem Branch abrufen:
git checkout <branch> -- <dateiname>
Spezifischen Commit von anderem Branch anwenden:
git cherry-pick <commit hash>
Aktuellen Branch umbenennen:
git branch -m <neuer_branch_name>
Lokalen Branch löschen:
git branch -d <branch>
Lokalen Branch erzwungen löschen:
git branch -D <branch>
⚠️ Warnung: Sie verlieren nicht zusammengeführte Änderungen!
Tags
Tag am HEAD erstellen:
git tag <tag-name>
Annotierten Tag erstellen:
git tag -a <tag-name>
Tag mit Nachricht erstellen:
git tag <tag-name> -am 'Nachricht hier'
Alle Tags auflisten:
git tag
Tags mit Nachrichten auflisten:
git tag -n
🔄 Aktualisieren & Veröffentlichen
Remote-Verwaltung
Konfigurierte Remotes auflisten:
git remote -v
Remote-Informationen anzeigen:
git remote show <remote>
Neuen Remote hinzufügen:
git remote add <remote> <url>
Remote umbenennen:
git remote rename <remote> <neuer_remote>
Remote entfernen:
git remote rm <remote>
ℹ️ Hinweis: Dies entfernt nur die Remote-Referenz lokal, nicht das Remote-Repository selbst.
Fetch & Pull
Änderungen ohne Merge herunterladen:
git fetch <remote>
Änderungen herunterladen und mergen:
git pull <remote> <branch>
Änderungen vom Haupt-Branch abrufen:
git pull origin master
Mit Rebase pullen:
git pull --rebase <remote> <branch>
Push & Veröffentlichen
Lokale Änderungen veröffentlichen:
git push <remote> <branch>
Remote Branch löschen:
# Git v1.7.0+
git push <remote> --delete <branch>
# Git v1.5.0+
git push <remote> :<branch>
Tags veröffentlichen:
git push --tags
🔀 Merge & Rebase
Merge-Operationen
Branch in aktuellen HEAD mergen:
git merge <branch>
Merge-Tool global konfigurieren:
git config --global merge.tool meld
Konfiguriertes Merge-Tool verwenden:
git mergetool
Rebase-Operationen
⚠️ Warnung: Veröffentlichte Commits nicht rebasen!
Aktuellen HEAD auf Branch rebasen:
git rebase <branch>
Rebase abbrechen:
git rebase --abort
Rebase nach Konfliktlösung fortsetzen:
git rebase --continue
Konfliktlösung
Datei als gelöst markieren:
git add <gelöste-datei>
Gelöste Datei entfernen:
git rm <gelöste-datei>
Commits zusammenfassen
Interaktives Rebase zum Zusammenfassen:
git rebase -i <commit-direkt-vor-dem-ersten>
Beispiel-Konfiguration zum Zusammenfassen:
# Vorher
pick <commit_id>
pick <commit_id2>
pick <commit_id3>
# Nachher (commit_id2 und commit_id3 in commit_id zusammenfassen)
pick <commit_id>
squash <commit_id2>
squash <commit_id3>
↩️ Rückgängig machen
Änderungen verwerfen
Alle lokalen Änderungen verwerfen:
git reset --hard HEAD
Alle Dateien aus der Staging-Area entfernen:
git reset HEAD
Änderungen in spezifischer Datei verwerfen:
git checkout HEAD <datei>
Reset-Operationen
Zu vorherigem Commit zurücksetzen (alle Änderungen verwerfen):
git reset --hard <commit>
Zu Remote Branch-Zustand zurücksetzen:
git reset --hard <remote/branch>
# Beispiel: git reset --hard upstream/master
Reset mit Änderungen als unstaged beibehalten:
git reset <commit>
Reset mit lokalen uncommitted Änderungen beibehalten:
git reset --keep <commit>
Commits rückgängig machen
Commit rückgängig machen (neuen Commit mit gegenteiligen Änderungen erstellen):
git revert <commit>
Ignorierte Dateien bereinigen
Versehentlich committete Dateien entfernen, die ignoriert werden sollten:
git rm -r --cached .
git add .
git commit -m "ignorierte Dateien entfernen"
📦 Zwischenspeichern (Stash)
Änderungen temporär speichern
Aktuelle Änderungen zwischenspeichern:
git stash
Mit beschreibender Nachricht zwischenspeichern:
git stash save "Beschreibende Nachricht"
Alle Stashes anzeigen:
git stash list
Letzten Stash anwenden:
git stash apply
Spezifischen Stash anwenden:
git stash apply stash@{0}
Letzten Stash anwenden und entfernen:
git stash pop
Spezifischen Stash entfernen:
git stash drop stash@{0}
Alle Stashes entfernen:
git stash clear
Änderungen in einem Stash anzeigen:
git stash show stash@{0}
Branch aus Stash erstellen:
git stash branch <branch-name> stash@{0}
🌊 Git Flow
Verbesserter Git-flow: git-flow-avh
📋 Inhaltsverzeichnis
🔧 Setup {#setup-1}
Voraussetzung: Funktionierende Git-Installation erforderlich. Git-flow funktioniert auf macOS, Linux und Windows.
macOS (Homebrew):
brew install git-flow-avh
macOS (MacPorts):
port install git-flow
Linux (Debian-basiert):
sudo apt-get install git-flow
Windows (Cygwin):
Benötigt wget und util-linux
wget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install <state> | bash
🚀 Erste Schritte
Git-flow benötigt Initialisierung, um Ihre Projekt-Konfiguration anzupassen.
Initialisieren (interaktiv):
git flow init
Sie beantworten Fragen zu Branch-Namenskonventionen. Standardwerte werden empfohlen.
Initialisieren (Standardwerte verwenden):
git flow init -d
✨ Features
Features sind für die Entwicklung neuer Funktionalität für kommende Releases. Sie existieren typischerweise nur in Entwickler-Repositories.
Neues Feature starten:
git flow feature start MEINFEATURE
Erstellt Feature-Branch basierend auf 'develop' und wechselt dorthin
Feature beenden:
git flow feature finish MEINFEATURE
Dies wird:
- MEINFEATURE in 'develop' mergen
- Den Feature-Branch entfernen
- Zurück zu 'develop' wechseln
Feature veröffentlichen (für Zusammenarbeit):
git flow feature publish MEINFEATURE
Veröffentlichtes Feature abrufen:
git flow feature pull origin MEINFEATURE
Origin Feature verfolgen:
git flow feature track MEINFEATURE
🎁 Release erstellen
Releases unterstützen die Vorbereitung neuer Produktions-Releases, erlauben kleinere Bugfixes und bereiten Meta-Daten vor.
Release starten:
git flow release start RELEASE [BASE]
Erstellt Release-Branch von 'develop'. Optional [BASE] Commit SHA-1 angeben.
Release veröffentlichen:
git flow release publish RELEASE
Remote Release verfolgen:
git flow release track RELEASE
Release beenden:
git flow release finish RELEASE
Dies wird:
- Release-Branch in 'master' mergen
- Das Release taggen
- Release zurück in 'develop' mergen
- Release-Branch entfernen
💡 Nicht vergessen: Tags mit
git push --tagspushen
🔥 Hotfixes
Hotfixes addressieren kritische Probleme in Live-Produktionsversionen. Sie zweigen vom entsprechenden Tag auf master ab.
Hotfix starten:
git flow hotfix start VERSION [BASENAME]
Hotfix beenden:
git flow hotfix finish VERSION
Mergt zurück in 'develop' und 'master', und taggt den Master-Merge
📊 Befehls-Übersicht
🌊 Git Flow Schema
💡 Nützliche Tipps
Nützliche Aliases
Nützliche Aliases konfigurieren:
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'
.gitignore Dateien
.gitignore Datei erstellen:
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore
echo ".env" >> .gitignore
# Bereits verfolgte Dateien ignorieren
git rm --cached <datei>
echo "<datei>" >> .gitignore
git add .gitignore
git commit -m "Datei zu .gitignore hinzufügen"
Git Hooks
Lokale Hooks konfigurieren:
# Pre-commit Hook (Beispiel)
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/sh
# Tests vor jedem Commit ausführen
npm test
EOF
chmod +x .git/hooks/pre-commit
🌍 Andere Sprachen
Dieses Cheat-Sheet ist in mehreren Sprachen verfügbar:
| Sprache | Link |
|---|---|
| 🇺🇸 Englisch | README.md |
| 🇸🇦 Arabisch | git-cheat-sheet-ar.md |
| 🇧🇩 Bengali | git-cheat-sheet-bn.md |
| 🇧🇷 Brasilianisches Portugiesisch | git-cheat-sheet-pt_BR.md |
| 🇨🇳 Chinesisch | git-cheat-sheet-zh.md |
| 🇪🇸 Spanisch | git-cheat-sheet-es.md |
| 🇬🇷 Griechisch | git-cheat-sheet-el.md |
| 🇮🇳 Hindi | git-cheat-sheet-hi.md |
| 🇰🇷 Koreanisch | git-cheat-sheet-ko.md |
| 🇵🇱 Polnisch | git-cheat-sheet-pl.md |
| 🇹🇷 Türkisch | git-cheat-sheet-tr.md |
🤝 Beitragen
Wir begrüßen Beiträge! Sie können:
- 🐛 Fehler oder Tippfehler melden
- ✨ Neue Git-Befehle hinzufügen
- 🌍 In neue Sprachen übersetzen
- 💡 Erklärungen verbessern
- 📝 Formatierung verbessern
Wie Sie beitragen:
- Forken Sie dieses Repository
- Erstellen Sie Ihren Feature-Branch (
git checkout -b feature/FantastischesFeature) - Committen Sie Ihre Änderungen (
git commit -m 'Fantastisches Feature hinzufügen') - Pushen Sie zum Branch (
git push origin feature/FantastischesFeature) - Öffnen Sie einen Pull Request
📄 Lizenz
Dieses Projekt ist Open Source und unter der MIT-Lizenz verfügbar.
📖 Zusätzliche Ressourcen
- Offizielle Git-Dokumentation
- Atlassian Git-Tutorials
- GitHub Git Cheat Sheet
- Interaktives Git-Tutorial
- Pro Git Buch (kostenlos)
- Git Workflows
⭐ Geben Sie diesem Repository einen Stern, wenn es hilfreich war!