# Git Cheat Sheet ## Inhaltsverzeichnis - [Konfiguration](#konfiguration) - [Repository anlegen](#repository-anlegen) - [Status & History](#status--history) - [Staging & Commits](#staging--commits) - [Branches](#branches) - [Mergen & Rebase](#mergen--rebase) - [Remotes](#remotes) - [Push & Pull](#push--pull) - [Dateien löschen / umbenennen](#dateien-löschen--umbenennen) - [Undo & Restore](#undo--restore) - [Tags](#tags) - [Nützliche Kurzbefehle](#nützliche-kurzbefehle) ## Konfiguration - Globalen User setzen `git config --global user.name "Dein Name"` `git config --global user.email "du@example.com"` - Aktuelle Config anzeigen `git config --list` ## Repository anlegen - Neues Repo im aktuellen Ordner `git init` - Vorhandenes Repo klonen `git clone ` ## Status & History - Status der Arbeitskopie `git status` - Änderungen vergleichen `git diff` Arbeitskopie vs. Index `git diff --staged` Index vs. letztem Commit - Commit-Historie `git log` `git log --oneline --graph --all` ## Staging & Commits - Datei zum Index hinzufügen `git add ` - Alle Änderungen hinzufügen `git add .` - Datei aus dem Index entfernen, aber nicht löschen `git reset ` - Commit erstellen `git commit -m "Commit-Nachricht"` - Letzten Commit überschreiben, nur lokal verwenden `git commit --amend` ## Branches - Alle Branches anzeigen `git branch` - Neuen Branch erstellen `git branch ` - In Branch wechseln `git switch ` oder klassisch `git checkout ` - Branch erstellen und direkt wechseln `git switch -c ` - Branch löschen lokal `git branch -d ` `git branch -D ` ## Mergen & Rebase - Branch in aktuellen Branch mergen `git merge ` - Interaktives Rebase zum Aufräumen von Commits `git rebase -i HEAD~` - Rebase abbrechen `git rebase --abort` - Merge-Konflikte prüfen `git status` `git diff` ## Remotes - Remotes anzeigen `git remote -v` - Remote hinzufügen `git remote add origin ` - Remote-URL ändern `git remote set-url origin ` - Remote entfernen `git remote remove ` ## Push & Pull - In Remote-Branch pushen `git push origin ` - Upstream setzen und direkt pushen `git push -u origin ` - Änderungen vom Remote holen und mergen `git pull` - Nur Daten holen, nicht mergen `git fetch` ## Dateien löschen / umbenennen - Datei löschen und Commit vorbereiten `git rm ` - Datei umbenennen oder verschieben `git mv ` ## Undo & Restore - Datei auf HEAD zurücksetzen, nur Arbeitskopie `git restore ` - Datei aus Index entfernen, aber in Arbeitskopie behalten `git restore --staged ` - Alles auf HEAD zurücksetzen, nicht committed `git restore .` - Einzelne Datei aus älterem Commit holen `git checkout -- ` - Branch hart auf Commit zurücksetzen, destruktiv `git reset --hard ` ## Tags - Tag erstellen lightweight `git tag ` - Annotierten Tag erstellen `git tag -a -m "Beschreibung"` - Tags anzeigen `git tag` - Tag pushen `git push origin ` ## Nützliche Kurzbefehle - Letzten Commit anzeigen `git show` - Ignorierte Dateien mit anzeigen `git status --ignored` - Stash verwenden `git stash` `git stash list` `git stash apply` `git stash drop`