Git-Befehle: Spickzettel zum Kopieren
Git-Befehle für den Alltag, nach Aufgaben gruppiert: Commit, Branch, Merge, Rebase, Stash, Rückgängig machen. Durchsuchbar und mit einem Klick kopierbar.
Einrichten
| Befehl | Wirkung | Kopieren |
|---|---|---|
git config --global user.name "Max Muster" | Namen für Commits festlegen | |
git config --global user.email "max@example.com" | E-Mail-Adresse für Commits festlegen | |
git config --global init.defaultBranch main | Neue Repositorys mit dem Branch main beginnen | |
git config --global core.autocrlf true | Zeilenenden unter Windows automatisch umwandeln (Linux/macOS: input) | |
git config --list --show-origin | Alle Einstellungen mit Herkunftsdatei anzeigen |
Repository anlegen
| Befehl | Wirkung | Kopieren |
|---|---|---|
git init | Neues Repository im aktuellen Ordner anlegen | |
git clone https://github.com/nutzer/projekt.git | Repository mit vollständigem Verlauf herunterladen | |
git clone --depth 1 https://github.com/nutzer/projekt.git | Nur den letzten Stand ohne Verlauf klonen |
Änderungen speichern
| Befehl | Wirkung | Kopieren |
|---|---|---|
git status | Geänderte, vorgemerkte und neue Dateien anzeigen | |
git add datei.txt | Datei für den nächsten Commit vormerken (Staging) | |
git add -p | Änderungen stückweise auswählen | |
git add . | Alle Änderungen im aktuellen Ordner vormerken | |
git diff | Noch nicht vorgemerkte Änderungen anzeigen | |
git diff --staged | Vorgemerkte Änderungen anzeigen | |
git commit -m "Kurze Beschreibung" | Vorgemerkte Änderungen als Commit speichern | |
git commit --amend --no-edit | Letzten Commit um vorgemerkte Änderungen ergänzen (nur vor dem Push) | |
git restore datei.txt | Änderungen an einer Datei verwerfen | |
git restore --staged datei.txt | Datei aus dem Staging nehmen, Änderung bleibt | |
git rm --cached datei.txt | Datei nicht mehr verfolgen, aber behalten | |
git mv alt.txt neu.txt | Datei umbenennen oder verschieben |
Branches und Zusammenführen
| Befehl | Wirkung | Kopieren |
|---|---|---|
git branch | Lokale Branches anzeigen | |
git branch -a | Auch entfernte Branches anzeigen | |
git switch -c feature/login | Neuen Branch anlegen und wechseln | |
git switch main | Zu einem Branch wechseln | |
git branch -d feature/login | Zusammengeführten Branch löschen (-D erzwingt) | |
git branch -m neuer-name | Aktuellen Branch umbenennen | |
git merge feature/login | Branch in den aktuellen Branch zusammenführen | |
git merge --no-ff feature/login | Zusammenführen immer mit Merge-Commit | |
git rebase main | Eigene Commits auf den neuesten Stand von main setzen | |
git rebase -i HEAD~3 | Letzte drei Commits umordnen, zusammenfassen oder umbenennen | |
git rebase --continue | Rebase nach dem Lösen eines Konflikts fortsetzen | |
git rebase --abort | Rebase abbrechen und alten Zustand herstellen | |
git cherry-pick a1b2c3d | Einen einzelnen Commit in den aktuellen Branch übernehmen |
Mit dem Server arbeiten
| Befehl | Wirkung | Kopieren |
|---|---|---|
git remote -v | Hinterlegte Remotes anzeigen | |
git remote add origin https://github.com/nutzer/projekt.git | Remote hinzufügen | |
git fetch --prune | Neues vom Server holen, gelöschte Branches entfernen | |
git pull | Holen und zusammenführen | |
git pull --rebase | Holen und eigene Commits darauf setzen | |
git push | Commits hochladen | |
git push -u origin feature/login | Neuen Branch hochladen und verknüpfen | |
git push --force-with-lease | Überschreiben nach Rebase, aber nur wenn niemand sonst gepusht hat | |
git push origin --delete feature/login | Branch auf dem Server löschen |
Verlauf ansehen
| Befehl | Wirkung | Kopieren |
|---|---|---|
git log --oneline --graph --all | Kompakter Verlauf aller Branches als Graph | |
git log -p -- datei.txt | Verlauf einer Datei mit Änderungen | |
git show a1b2c3d | Einen Commit mit Änderungen anzeigen | |
git blame datei.txt | Wer welche Zeile zuletzt geändert hat | |
git log -S "suchtext" | Commits finden, die einen Text hinzugefügt oder entfernt haben | |
git reflog | Alle Bewegungen von HEAD, auch nach reset oder rebase | |
git shortlog -sn | Anzahl Commits je Person |
Rückgängig machen
| Befehl | Wirkung | Kopieren |
|---|---|---|
git revert a1b2c3d | Neuer Commit, der einen alten aufhebt (sicher für geteilte Branches) | |
git reset --soft HEAD~1 | Letzten Commit aufheben, Änderungen bleiben vorgemerkt | |
git reset HEAD~1 | Letzten Commit aufheben, Änderungen bleiben im Arbeitsverzeichnis | |
git reset --hard HEAD~1 | Letzten Commit samt Änderungen verwerfen (Vorsicht) | |
git reset --hard origin/main | Lokalen Branch auf den Serverstand setzen (Vorsicht) | |
git restore --source=a1b2c3d datei.txt | Datei aus einem älteren Commit wiederherstellen | |
git clean -n | Zeigen, welche nicht verfolgten Dateien gelöscht würden | |
git clean -fd | Nicht verfolgte Dateien und Ordner löschen (Vorsicht) |
Zwischenspeichern (Stash)
| Befehl | Wirkung | Kopieren |
|---|---|---|
git stash | Änderungen beiseitelegen | |
git stash push -m "Zwischenstand" | Mit Beschreibung beiseitelegen | |
git stash -u | Auch neue, nicht verfolgte Dateien beiseitelegen | |
git stash list | Gespeicherte Stashes anzeigen | |
git stash pop | Letzten Stash anwenden und entfernen | |
git stash apply stash@{1} | Bestimmten Stash anwenden, ohne ihn zu entfernen | |
git stash drop stash@{0} | Stash löschen |
Tags und Versionen
| Befehl | Wirkung | Kopieren |
|---|---|---|
git tag | Tags anzeigen | |
git tag -a v1.0.0 -m "Version 1.0.0" | Annotiertes Tag anlegen | |
git push origin v1.0.0 | Tag hochladen | |
git push --tags | Alle Tags hochladen | |
git tag -d v1.0.0 | Tag lokal löschen |
Fehlersuche und Sonstiges
| Befehl | Wirkung | Kopieren |
|---|---|---|
git bisect start | Binäre Suche nach dem Commit starten, der einen Fehler eingeführt hat | |
git bisect bad | Aktuellen Stand als fehlerhaft markieren | |
git bisect good v1.0.0 | Bekannten guten Stand markieren | |
git bisect reset | Suche beenden | |
git worktree add ../hotfix hotfix | Zweiten Branch parallel in einem eigenen Ordner auschecken | |
git submodule update --init --recursive | Submodule herunterladen |
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
Git im Alltag
Dieser Git Spickzettel sammelt 75 Git-Befehle für den Alltag, gruppiert nach Aufgaben: vom Einrichten über git commit und Branches bis zum Rückgängigmachen. Jeder Befehl lässt sich mit einem Klick kopieren; Platzhalter wie Dateinamen, Branch-Namen oder Commit-Kennungen (a1b2c3d) ersetzen Sie durch Ihre eigenen.
Zwei Befehle verdienen Vorsicht. git rebase schreibt die Commit-Geschichte neu: Das ist in Ordnung für eigene, noch nicht geteilte Branches, auf gemeinsamen Branches führt es zu Konflikten bei anderen. Nach einem Rebase eines bereits hochgeladenen Branches brauchen Sie git push --force-with-lease, das im Gegensatz zu --force abbricht, wenn jemand anderes inzwischen gepusht hat. git reset --hard und git clean -fd verwerfen Arbeit endgültig; verlorene Commits lassen sich oft noch über git reflog retten, nicht verfolgte Dateien nicht.
Die Befehle git switch und git restore gibt es seit Git 2.23. Sie teilen die Aufgaben des älteren git checkout auf und sind leichter zu merken; checkout funktioniert weiterhin. Diese Git Befehle Liste ersetzt nicht die Dokumentation: Mit git help befehl öffnen Sie die vollständige Hilfe. Als Git Cheat Sheet zum Ausdrucken eignet sich die Seite ebenfalls.
Anleitung: Git-Befehle in 3 Schritten
- Im Feld „Befehl oder Aufgabe suchen“ einen Befehl wie git rebase oder eine Aufgabe wie „rückgängig“ eintippen.
- In den gefilterten Gruppen, etwa „Rückgängig machen“ oder „Zwischenspeichern (Stash)“, die Spalte „Wirkung“ lesen.
- Den passenden Git-Befehl mit „Kopieren“ übernehmen und Platzhalter wie Branch-Namen oder Commit-Kennungen ersetzen.
Typische Anwendungsfälle
- Neues Repository einrichten: Name, E-Mail und Standard-Branch festlegen und das Projekt mit git init oder git clone starten.
- Feature-Branch abschließen: Branch anlegen, mit git rebase auf den neuesten Stand bringen, zusammenführen und auf dem Server löschen.
- Fehler beheben: Einen versehentlichen Commit mit git reset oder git revert aufheben, je nachdem, ob er schon geteilt wurde.
- Releases markieren: Annotierte Tags anlegen und hochladen.
Häufige Fragen
Was ist der Unterschied zwischen merge und rebase?
Merge führt zwei Branches mit einem Merge-Commit zusammen und lässt die Geschichte unverändert. Rebase setzt Ihre Commits neu auf den Zielbranch und erzeugt eine gerade Linie, verändert dabei aber die Commit-Kennungen.
Wie mache ich den letzten Commit rückgängig?
Noch nicht hochgeladen: git reset --soft HEAD~1, die Änderungen bleiben erhalten. Schon geteilt: git revert mit der Commit-Kennung, das erzeugt einen neuen Commit, der die Änderung aufhebt.
Was ist der Unterschied zwischen git fetch und git pull?
fetch holt nur die neuen Daten vom Server und ändert Ihre Arbeitskopie nicht. pull führt fetch aus und anschließend merge oder rebase.
Wie ändere ich die Nachricht des letzten git commit?
Mit git commit --amend öffnet sich der Editor mit der alten Nachricht. Wurde der Commit schon gepusht, müssen Sie danach mit --force-with-lease pushen.
Kann ich gelöschte Commits wiederherstellen?
Meist ja: git reflog zeigt frühere Stände von HEAD. Mit git switch -c rettung <kennung> legen Sie einen Branch darauf an.
Wie lösche ich einen Git-Branch lokal und auf dem Server?
Lokal mit git branch -d name, bei nicht zusammengeführten Branches mit -D. Auf dem Server mit git push origin --delete name.
Wie lege ich Änderungen kurz beiseite, um den Branch zu wechseln?
Mit git stash speichern Sie die unfertigen Änderungen, wechseln den Branch und holen sie später mit git stash pop zurück. Neue, noch nicht verfolgte Dateien nimmt git stash -u mit.
Das könnte auch helfen
HTTP-Statuscodes
Alle gängigen HTTP-Statuscodes von 100 bis 511 mit Bedeutung, typischer Ursache und Suche.
ÖffnenHTTP-Header-Referenz
Wichtige Anfrage- und Antwort-Header mit Bedeutung und Beispiel, durchsuchbar.
ÖffnenMIME-Typen
Über 150 MIME-Typen nachschlagen: Dateiendung zu Content-Type und umgekehrt.
ÖffnenBash-Befehle
Bash- und Linux-Befehle für Dateien, Text, Prozesse und Netzwerk, mit Suche und Kopieren.
ÖffnenPort-Liste
Bekannte TCP- und UDP-Ports von 20 bis 51820 mit Dienst und Hinweis, durchsuchbar.
ÖffnenDNS-Records erklärt
DNS-Record einfügen und zerlegen lassen: A, MX, TXT, SPF, SOA, SRV, CAA, HTTPS und mehr.
Öffnen