Einrichtung & Konfiguration ⤢ git configSetzt Name, E-Mail oder Editor einmal für alle Repositories. git config --global user.name "Ada" ⤢ git config --global aliasDefiniert einen Kurznamen für einen häufig getippten Befehl. git config --global alias.co checkout ⤢ git initErstellt ein neues Repository im aktuellen Ordner. git init ⤢ git cloneKopiert ein Remote-Repository auf Ihre Maschine. git clone git@github.com:org/repo.git ⤢ git clone --depthKopiert nur die neuesten Commits eines einzelnen Branches. git clone --depth 1 --single-branch git@github.com:org/repo.git Snapshot-Grundlagen ⤢ git statusZeigt, was gestagt, geändert und unversioniert ist. git status -sb ⤢ git addStagt Änderungen, damit sie in den nächsten Commit kommen. git add src/app.ts ⤢ git add -pPrüft Änderungen Block für Block und stagt nur die akzeptierten. git add -p src/app.ts ⤢ git add -uStagt die Änderungen aller versionierten Dateien, ohne neue hinzuzufügen. git add -u ⤢ git commitSpeichert die gestagten Änderungen als neuen Commit. git commit -m "fix: null check" ⤢ git commit --amendErsetzt den letzten Commit durch eine korrigierte Fassung. git commit --amend -m "fix: handle empty input" ⤢ git diffZeigt ungestagte Änderungen, oder mit --staged die gestagten. git diff --staged ⤢ git diff HEADZeigt jede Änderung seit dem letzten Commit, gestagt oder nicht. git diff HEAD Branches & Merges ⤢ git branchListet, erstellt oder löscht Branches. git branch feature-x ⤢ git branch -dLöscht einen gemergten Branch (-D erzwingt es, -a listet alle Branches). git branch -d feature-x ⤢ git switchWechselt Branches (der moderne Ersatz für checkout). git switch feature-x ⤢ git switch -cErstellt einen neuen Branch und wechselt in einem Schritt hinein. git switch -c feature-x ⤢ git checkoutWechselt Branches oder stellt Dateien wieder her (der ältere, breitere Befehl). git checkout feature-x ⤢ git mergeHolt die Änderungen eines anderen Branches in den aktuellen. git merge feature-x ⤢ git merge --abortBricht einen Merge mit Konflikten ab und stellt den vorigen Zustand her. git merge --abort ⤢ git rebaseSpielt die Commits des aktuellen Branches auf einen anderen Branch neu ab. git rebase main ⤢ git rebase -iVerdichtet, sortiert oder bearbeitet Commits beim Neu-Abspielen. git rebase -i main ⤢ git cherry-pickKopiert einen einzelnen Commit eines anderen Branches auf diesen. git cherry-pick a1b2c3d ⤢ git tagVersieht einen Commit mit einem lesbaren Label wie einer Version. git tag -a v1.2.0 ⤢ git worktreeCheckt einen anderen Branch gleichzeitig in einem separaten Ordner aus. git worktree add ../repo-feature feature-x Historie untersuchen ⤢ git logDurchläuft die Commit-Historie. git log --oneline --graph --decorate ⤢ git log --allDurchläuft die Historie aller Branches, nicht nur des aktuellen. git log --oneline --graph --all ⤢ git showZeigt den vollständigen Diff und die Nachricht eines Commits. git show HEAD ⤢ git blameZeigt, wer jede Zeile einer Datei zuletzt geändert hat. git blame src/app.ts ⤢ git reflogZeigt jeden Commit, auf den HEAD je zeigte, auch verworfene. git reflog ⤢ git bisectSucht die Historie in Hälften ab, um den fehlerhaften Commit zu finden. git bisect start ⤢ git shortlogFasst Commits nach Autor zusammen. git shortlog -sn ⤢ git describeBenennt den aktuellen Commit durch Zählen vom nächsten Tag. git describe --tags Zusammenarbeit über Remotes ⤢ git remoteListet Remote-Repositories auf oder fügt sie hinzu. git remote add origin <url> ⤢ git remote -vListet Remotes mit ihren Fetch- und Push-URLs. git remote -v ⤢ git fetchLädt Remote-Änderungen herunter, ohne Ihre Branches zu ändern. git fetch origin ⤢ git fetch --pruneLädt Änderungen herunter und entfernt Refs auf gelöschte Remote-Branches. git fetch --prune ⤢ git pullHolt und merget die Remote-Änderungen des aktuellen Branches. git pull --rebase ⤢ git pushSendet lokale Commits zum Remote. git push -u origin feature-x ⤢ git push --force-with-leaseÜberschreibt den Remote-Branch, aber nur, wenn niemand vorher gepusht hat. git push --force-with-lease origin feature-x Änderungen rückgängig machen ⤢ git restoreVerwirft Working-Tree-Änderungen oder entstagt sie. git restore src/app.ts ⤢ git restore --stagedEntstagt eine Datei und behält ihre Änderungen im Working Tree. git restore --staged src/app.ts ⤢ git resetVerschiebt die Spitze des aktuellen Branches und optional den Index. git reset --hard HEAD~1 ⤢ git revertFügt einen neuen Commit hinzu, der einen früheren rückgängig macht (sicher teilbar). git revert HEAD ⤢ git cleanLöscht unversionierte Dateien und Ordner. git clean -fd Stash ⤢ git stashSpeichert uncommittete Arbeit und setzt den Working Tree zurück. git stash -u ⤢ git stash listZeigt jeden gespeicherten Stash. git stash list ⤢ git stash applyWendet einen Stash erneut an und behält ihn gespeichert. git stash apply stash@{1} ⤢ git stash dropLöscht einen Stash, den Sie nicht mehr brauchen. git stash drop stash@{1} ⤢ git stash popWendet den jüngsten Stash an und verwirft ihn. git stash pop Dateien & Submodule ⤢ git mvVerschiebt oder benennt eine Datei um und stagt die Änderung. git mv old.ts src/new.ts ⤢ git rmLöscht eine Datei und stagt die Löschung. git rm src/old.ts ⤢ git submoduleVerfolgt ein anderes Repository als Ordner innerhalb dieses Repositories. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutCheckt aus einem großen Repository nur die genannten Ordner aus. git sparse-checkout set src docs ⤢ git archiveExportiert den Baum eines Commits als Tar- oder Zip-Datei. git archive -o repo.zip HEAD