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.
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
- 📖 Ü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
Aktuelle Konfiguration anzeigen:
git config --listRepository-Konfiguration anzeigen:
git config --local --listGlobale Konfiguration anzeigen:
git config --global --listSystem-Konfiguration anzeigen:
git config --system --listNamen für Versionsverlauf festlegen:
git config --global user.name "[Vorname Nachname]"E-Mail-Adresse festlegen:
git config --global user.email "[gültige-email]"Automatische Befehlszeilen-Farbgebung aktivieren:
git config --global color.ui autoGlobalen Editor für Commits festlegen:
git config --global core.editor vi| Bereich | Ort | Befehlsflag |
|---|---|---|
| Repository | <repo>/.git/config |
--local |
| Benutzer | ~/.gitconfig |
--global |
| System | /etc/gitconfig |
--system |
Über SSH:
git clone ssh://benutzer@domain.com/repo.gitÜber HTTPS:
git clone https://domain.com/benutzer/repo.gitRepository im aktuellen Verzeichnis erstellen:
git initRepository in spezifischem Verzeichnis erstellen:
git init <verzeichnis>Arbeitsverzeichnis-Status anzeigen:
git statusÄnderungen in verfolgten Dateien anzeigen:
git diffÄnderungen in spezifischer Datei anzeigen:
git diff <datei>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>Alle verfolgten Dateiänderungen committen:
git commit -aBereitgestellte Änderungen committen:
git commitMit 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>"
⚠️ Warnung: Veröffentlichte Commits nicht ändern!
Letzten Commit ergänzen:
git commit -a --amendErgänzen ohne Commit-Nachricht zu ändern:
git commit --amend --no-editCommitter-Datum ändern:
GIT_COMMITTER_DATE="datum" git commit --amendAutor-Datum ändern:
git commit --amend --date="datum"Aktuelle Änderungen temporär speichern:
git stashLetzte gespeicherte Änderungen anwenden:
git stash applySpezifischen Stash anwenden:
git stash apply stash@{stash_nummer}Verwenden Sie
git stash list, um verfügbare Stashes zu sehen
Letzten Stash entfernen:
git stash dropNicht committete Änderungen zu anderem Branch verschieben:
git stash
git checkout branch2
git stash popText in allen Dateien suchen:
git grep "Hallo"In spezifischer Version suchen:
git grep "Hallo" v2.5Commits finden, die spezifisches Schlüsselwort eingeführt haben:
git log -S 'schlüsselwort'Mit regulärem Ausdruck suchen:
git log -S 'schlüsselwort' --pickaxe-regexAlle Commits anzeigen (detailliert):
git logCommits anzeigen (eine Zeile je Commit):
git log --onelineCommits von spezifischem Autor anzeigen:
git log --author="benutzername"Änderungen für spezifische Datei anzeigen:
git log -p <datei>Branches vergleichen:
git log --oneline <origin/master>..<remote/master> --left-rightAnzeigen, wer was wann geändert hat:
git blame <datei>Referenz-Log anzeigen:
git reflog showReferenz-Log löschen:
git reflog deleteDatei umbenennen:
git mv Index.txt Index.htmlLokale Branches auflisten:
git branchAlle Branches auflisten (lokal + remote):
git branch -aRemote Branches auflisten:
git branch -rZusammengeführte Branches auflisten:
git branch --mergedZu 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>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!
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 tagTags mit Nachrichten auflisten:
git tag -nKonfigurierte Remotes auflisten:
git remote -vRemote-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.
Änderungen ohne Merge herunterladen:
git fetch <remote>Änderungen herunterladen und mergen:
git pull <remote> <branch>Änderungen vom Haupt-Branch abrufen:
git pull origin masterMit Rebase pullen:
git pull --rebase <remote> <branch>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 --tagsBranch in aktuellen HEAD mergen:
git merge <branch>Merge-Tool global konfigurieren:
git config --global merge.tool meldKonfiguriertes Merge-Tool verwenden:
git mergetool
⚠️ Warnung: Veröffentlichte Commits nicht rebasen!
Aktuellen HEAD auf Branch rebasen:
git rebase <branch>Rebase abbrechen:
git rebase --abortRebase nach Konfliktlösung fortsetzen:
git rebase --continueDatei als gelöst markieren:
git add <gelöste-datei>Gelöste Datei entfernen:
git rm <gelöste-datei>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>
Alle lokalen Änderungen verwerfen:
git reset --hard HEADAlle Dateien aus der Staging-Area entfernen:
git reset HEADÄnderungen in spezifischer Datei verwerfen:
git checkout HEAD <datei>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/masterReset mit Änderungen als unstaged beibehalten:
git reset <commit>Reset mit lokalen uncommitted Änderungen beibehalten:
git reset --keep <commit>Commit rückgängig machen (neuen Commit mit gegenteiligen Änderungen erstellen):
git revert <commit>Versehentlich committete Dateien entfernen, die ignoriert werden sollten:
git rm -r --cached .
git add .
git commit -m "ignorierte Dateien entfernen"Aktuelle Änderungen zwischenspeichern:
git stashMit beschreibender Nachricht zwischenspeichern:
git stash save "Beschreibende Nachricht"Alle Stashes anzeigen:
git stash listLetzten Stash anwenden:
git stash applySpezifischen Stash anwenden:
git stash apply stash@{0}Letzten Stash anwenden und entfernen:
git stash popSpezifischen 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}Verbesserter Git-flow: git-flow-avh
Voraussetzung: Funktionierende Git-Installation erforderlich. Git-flow funktioniert auf macOS, Linux und Windows.
macOS (Homebrew):
brew install git-flow-avhmacOS (MacPorts):
port install git-flowLinux (Debian-basiert):
sudo apt-get install git-flowWindows (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> | bashGit-flow benötigt Initialisierung, um Ihre Projekt-Konfiguration anzupassen.
Initialisieren (interaktiv):
git flow initSie beantworten Fragen zu Branch-Namenskonventionen. Standardwerte werden empfohlen.
Initialisieren (Standardwerte verwenden):
git flow init -dFeatures 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 MEINFEATUREErstellt Feature-Branch basierend auf 'develop' und wechselt dorthin
Feature beenden:
git flow feature finish MEINFEATUREDies wird:
- MEINFEATURE in 'develop' mergen
- Den Feature-Branch entfernen
- Zurück zu 'develop' wechseln
Feature veröffentlichen (für Zusammenarbeit):
git flow feature publish MEINFEATUREVeröffentlichtes Feature abrufen:
git flow feature pull origin MEINFEATUREOrigin Feature verfolgen:
git flow feature track MEINFEATUREReleases 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 RELEASERemote Release verfolgen:
git flow release track RELEASERelease beenden:
git flow release finish RELEASEDies 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 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 VERSIONMergt zurück in 'develop' und 'master', und taggt den Master-Merge
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 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"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-commitDieses 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 |
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
Dieses Projekt ist Open Source und unter der MIT-Lizenz verfügbar.
- 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!


