Git Cheat Sheet Deutsch

July 8, 2025 · View on GitHub

Git Logo

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


🔧 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

BereichOrtBefehlsflag
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:

  1. MEINFEATURE in 'develop' mergen
  2. Den Feature-Branch entfernen
  3. 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:

  1. Release-Branch in 'master' mergen
  2. Das Release taggen
  3. Release zurück in 'develop' mergen
  4. Release-Branch entfernen

💡 Nicht vergessen: Tags mit git push --tags pushen


🔥 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 Befehle

🌊 Git Flow Schema

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:

SpracheLink
🇺🇸 EnglischREADME.md
🇸🇦 Arabischgit-cheat-sheet-ar.md
🇧🇩 Bengaligit-cheat-sheet-bn.md
🇧🇷 Brasilianisches Portugiesischgit-cheat-sheet-pt_BR.md
🇨🇳 Chinesischgit-cheat-sheet-zh.md
🇪🇸 Spanischgit-cheat-sheet-es.md
🇬🇷 Griechischgit-cheat-sheet-el.md
🇮🇳 Hindigit-cheat-sheet-hi.md
🇰🇷 Koreanischgit-cheat-sheet-ko.md
🇵🇱 Polnischgit-cheat-sheet-pl.md
🇹🇷 Türkischgit-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:

  1. Forken Sie dieses Repository
  2. Erstellen Sie Ihren Feature-Branch (git checkout -b feature/FantastischesFeature)
  3. Committen Sie Ihre Änderungen (git commit -m 'Fantastisches Feature hinzufügen')
  4. Pushen Sie zum Branch (git push origin feature/FantastischesFeature)
  5. Öffnen Sie einen Pull Request

📄 Lizenz

Dieses Projekt ist Open Source und unter der MIT-Lizenz verfügbar.


📖 Zusätzliche Ressourcen


⭐ Geben Sie diesem Repository einen Stern, wenn es hilfreich war!