
Git Spickzettel
Erste Schritte
Neues Repo starten
git init
Vorhandenes Repo klonen
git clone <url>
Vorbereitung für Commits
Nicht verfolgte Datei oder unstaged Änderungen hinzufügen
git add <datei>
Alle nicht verfolgten Dateien und unstaged Änderungen hinzufügen
git add .
Teile einer Datei zum Staging auswählen
git add -p
Datei verschieben
git mv <alt> <neu>
Datei löschen
git rm <datei>
Git dazu bringen, eine Datei zu ignorieren, ohne sie zu löschen
git rm --cached <datei>
Eine Datei aus dem Staging nehmen
git reset <datei>
Alles aus dem Staging nehmen
git reset
Überprüfen, was Sie hinzugefügt haben
git status
Commits erstellen
Commit erstellen (und Texteditor zum Schreiben der Nachricht öffnen)
git commit
Commit erstellen
git commit -m 'Nachricht'
Alle unstaged Änderungen committen
git commit -am 'Nachricht'
Zwischen Branches wechseln
Branches wechseln
git switch <name> ODER git checkout <name>Branch erstellen
git switch -c <name> ODER git checkout -b <name>Branches auflisten
git branch
Branches nach dem letzten Commit sortiert auflisten
git branch --sort=-committerdate
Branch löschen
git branch -d <name>
Branch erzwingen zu löschen
git branch -D <name>
Staged/Unstaged Änderungen anzeigen
Alle staged und unstaged Änderungen anzeigen
git diff HEAD
Nur staged Änderungen anzeigen
git diff --staged
Nur unstaged Änderungen anzeigen
git diff
Commits anzeigen
Unterschied zwischen einem Commit und seinem Elternteil anzeigen
git show <commit>
Unterschied zwischen zwei Commits anzeigen
git diff <commit> <commit>
Unterschied einer Datei seit einem Commit anzeigen
git diff <commit> <datei>
Zusammenfassung eines Diff anzeigen
git diff <commit> --stat git show <commit> --statMöglichkeiten, auf einen Commit zu verweisen
Jedes Mal, wenn wir <commit> sagen, können Sie eine der folgenden Optionen verwenden
- ein Branch
- main
- ein Tag
- v0.1
- eine Commit-ID
- 3e887ab
- ein Remote-Branch
- origin/main
- aktueller Commit
- HEAD
- 3 Commits zurück
- HEAD^^^ oder HEAD~3
Änderungen verwerfen
Unstaged Änderungen einer Datei verwerfen
git restore <datei> ODER git checkout <datei>Alle staged und unstaged Änderungen einer Datei verwerfen
git restore --staged --worktree <datei> ODER git checkout HEAD <datei>Alle staged und unstaged Änderungen verwerfen
git reset --hard
Nicht verfolgte Dateien löschen
git clean
Alle staged und unstaged Änderungen 'stasen'
git stash
Historie bearbeiten
Den letzten Commit "rückgängig machen" (Arbeitsverzeichnis unverändert lassen)
git reset HEAD^
Die letzten 5 Commits zu einem zusammenfassen
git rebase -i HEAD~6
Ändern Sie dann "pick" in "fixup" für jeden Commit, den Sie mit dem vorherigen kombinieren möchten
Einen fehlgeschlagenen Rebase rückgängig machen
git reflog BRANCHNAME
Finden Sie dann manuell die richtige Commit-ID in der Reflog und führen Sie dann aus
git reset --hard <commit>
Eine Commit-Nachricht ändern (oder eine vergessene Datei hinzufügen)
git commit --amend
Code-Archäologie
Historie eines Branches anzeigen
git log main git log --graph main git log --onelineJeden Commit anzeigen, der eine Datei geändert hat
git log <datei>
Jeden Commit anzeigen, der eine Datei geändert hat, auch bevor sie umbenannt wurde
git log --follow <datei>
Jeden Commit finden, der Text hinzugefügt oder entfernt hat
git log -G banana
Anzeigen, wer zuletzt jede Zeile einer Datei geändert hat
git blame <datei>
Abweichende Branches zusammenführen
Mit Rebase zusammenführen
git switch banana git rebase main
Mit Merge zusammenführen
git switch main git merge banana
Mit Squash-Merge zusammenführen
git switch main git merge --squash banana git commit
Einen Branch mit einem anderen Branch auf den neuesten Stand bringen (auch "Fast-Forward-Merge" genannt)
git switch main git merge banana
Einen Commit auf den aktuellen Branch kopieren
git cherry-pick <commit>
Alte Dateien wiederherstellen
Die Version einer Datei aus einem anderen Commit abrufen
git checkout <commit> <datei> ODER git restore <datei> --source <commit>Remote hinzufügen
git remote add <name> <url>
Änderungen pushen
Den main-Branch zum Remote origin pushen
git push origin main
Den aktuellen Branch zu seinem Remote "Tracking Branch" pushen
git push
Einen Branch pushen, den Sie noch nie zuvor gepusht haben
git push -u origin <name>
Push erzwingen
git push --force-with-lease
Tags pushen
git push --tags
Änderungen ziehen
Änderungen abrufen (aber keine Ihrer lokalen Branches ändern)
git fetch origin main
Änderungen abrufen und dann Ihren aktuellen Branch rebasen
git pull --rebase
Änderungen abrufen und dann in Ihren aktuellen Branch mergen
git pull origin main ODER git pullGit konfigurieren
Eine Konfigurationsoption einstellen
git config user.name 'Ihr Name'
Option global einstellen
git config --global ...
Alias hinzufügen
git config alias.st status
Alle möglichen Konfigurationsoptionen anzeigen
man git-config
Wichtige Dateien
Lokale Git-Konfiguration
.git/config
Globale Git-Konfiguration
~/.gitconfig
Liste zu ignorierender Dateien
.gitignore