Skip to content

Git-Befehle erklärt

Die Git-Befehle, die Sie wirklich verwenden, nach Aufgabe gruppiert: ein Repository anlegen, Arbeit einfrieren, Branches erstellen und zusammenführen, Historie lesen, mit einem Remote teilen, Fehler rückgängig machen, Arbeit im Stash ablegen sowie Dateien und Submodule verwalten. Jede Zeile verbindet den Befehl mit einem realistischen Aufruf.

Git hat Hunderte von Befehlen, aber die tägliche Arbeit braucht nur wenige. Das mentale Modell: Der Working Tree sind Ihre Dateien, der Index (Staging-Area) ist der nächste Commit, und HEAD ist der aktuelle Commit. Sie stagen, Sie committen, Sie teilen. Lesen Sie den Status oft. Alles Weitere setzt voraus, dass ein gelisteter Befehl bereits existiert.

Nachschlagetabelle · 55 Einträge
55 of 55 rows
Einrichtung & Konfiguration
Setzt Name, E-Mail oder Editor einmal für alle Repositories.git config --global user.name "Ada"
Definiert einen Kurznamen für einen häufig getippten Befehl.git config --global alias.co checkout
Erstellt ein neues Repository im aktuellen Ordner.git init
Kopiert ein Remote-Repository auf Ihre Maschine.git clone git@github.com:org/repo.git
Kopiert nur die neuesten Commits eines einzelnen Branches.git clone --depth 1 --single-branch git@github.com:org/repo.git
Snapshot-Grundlagen
Zeigt, was gestagt, geändert und unversioniert ist.git status -sb
Stagt Änderungen, damit sie in den nächsten Commit kommen.git add src/app.ts
Prüft Änderungen Block für Block und stagt nur die akzeptierten.git add -p src/app.ts
Stagt die Änderungen aller versionierten Dateien, ohne neue hinzuzufügen.git add -u
Speichert die gestagten Änderungen als neuen Commit.git commit -m "fix: null check"
Ersetzt den letzten Commit durch eine korrigierte Fassung.git commit --amend -m "fix: handle empty input"
Zeigt ungestagte Änderungen, oder mit --staged die gestagten.git diff --staged
Zeigt jede Änderung seit dem letzten Commit, gestagt oder nicht.git diff HEAD
Branches & Merges
Listet, erstellt oder löscht Branches.git branch feature-x
Löscht einen gemergten Branch (-D erzwingt es, -a listet alle Branches).git branch -d feature-x
Wechselt Branches (der moderne Ersatz für checkout).git switch feature-x
Erstellt einen neuen Branch und wechselt in einem Schritt hinein.git switch -c feature-x
Wechselt Branches oder stellt Dateien wieder her (der ältere, breitere Befehl).git checkout feature-x
Holt die Änderungen eines anderen Branches in den aktuellen.git merge feature-x
Bricht einen Merge mit Konflikten ab und stellt den vorigen Zustand her.git merge --abort
Spielt die Commits des aktuellen Branches auf einen anderen Branch neu ab.git rebase main
Verdichtet, sortiert oder bearbeitet Commits beim Neu-Abspielen.git rebase -i main
Kopiert einen einzelnen Commit eines anderen Branches auf diesen.git cherry-pick a1b2c3d
Versieht einen Commit mit einem lesbaren Label wie einer Version.git tag -a v1.2.0
Checkt einen anderen Branch gleichzeitig in einem separaten Ordner aus.git worktree add ../repo-feature feature-x
Historie untersuchen
Durchläuft die Commit-Historie.git log --oneline --graph --decorate
Durchläuft die Historie aller Branches, nicht nur des aktuellen.git log --oneline --graph --all
Zeigt den vollständigen Diff und die Nachricht eines Commits.git show HEAD
Zeigt, wer jede Zeile einer Datei zuletzt geändert hat.git blame src/app.ts
Zeigt jeden Commit, auf den HEAD je zeigte, auch verworfene.git reflog
Sucht die Historie in Hälften ab, um den fehlerhaften Commit zu finden.git bisect start
Fasst Commits nach Autor zusammen.git shortlog -sn
Benennt den aktuellen Commit durch Zählen vom nächsten Tag.git describe --tags
Zusammenarbeit über Remotes
Listet Remote-Repositories auf oder fügt sie hinzu.git remote add origin <url>
Listet Remotes mit ihren Fetch- und Push-URLs.git remote -v
Lädt Remote-Änderungen herunter, ohne Ihre Branches zu ändern.git fetch origin
Lädt Änderungen herunter und entfernt Refs auf gelöschte Remote-Branches.git fetch --prune
Holt und merget die Remote-Änderungen des aktuellen Branches.git pull --rebase
Sendet lokale Commits zum Remote.git push -u origin feature-x
Überschreibt den Remote-Branch, aber nur, wenn niemand vorher gepusht hat.git push --force-with-lease origin feature-x
Änderungen rückgängig machen
Verwirft Working-Tree-Änderungen oder entstagt sie.git restore src/app.ts
Entstagt eine Datei und behält ihre Änderungen im Working Tree.git restore --staged src/app.ts
Verschiebt die Spitze des aktuellen Branches und optional den Index.git reset --hard HEAD~1
Fügt einen neuen Commit hinzu, der einen früheren rückgängig macht (sicher teilbar).git revert HEAD
Löscht unversionierte Dateien und Ordner.git clean -fd
Stash
Speichert uncommittete Arbeit und setzt den Working Tree zurück.git stash -u
Zeigt jeden gespeicherten Stash.git stash list
Wendet einen Stash erneut an und behält ihn gespeichert.git stash apply stash@{1}
Löscht einen Stash, den Sie nicht mehr brauchen.git stash drop stash@{1}
Wendet den jüngsten Stash an und verwirft ihn.git stash pop
Dateien & Submodule
Verschiebt oder benennt eine Datei um und stagt die Änderung.git mv old.ts src/new.ts
Löscht eine Datei und stagt die Löschung.git rm src/old.ts
Verfolgt ein anderes Repository als Ordner innerhalb dieses Repositories.git submodule add git@github.com:org/lib.git lib
Checkt aus einem großen Repository nur die genannten Ordner aus.git sparse-checkout set src docs
Exportiert den Baum eines Commits als Tar- oder Zip-Datei.git archive -o repo.zip HEAD