Lazygit – Der Terminal-Git-Client
Inhaltsverzeichnis
Lazygit – Der Terminal-Git-Client
Lazygit ist ein schneller, terminalbasierter Git-Client mit TUI (Terminal User
Interface). Du steuerst alles per Tastatur und behältst dein ganzes Repository
auf einen Blick – kein Merken von kryptischen git-Befehlen mehr.
Installation
# Arch / Manjaro
sudo pacman -S lazygit
# Ubuntu / Debian
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
# macOS
brew install lazygit
# Windows (mit Winget)
winget install JesseDuffield.lazygit
Start: Einfach lazygit im Repository-Verzeichnis ausführen.
Navigation (global)
| Taste | Aktion |
|---|---|
h / l |
Zwischen Panels wechseln (links/rechts) |
j / k |
In Liste nach unten/oben |
↑ / ↓ |
Dasselbe wie j/k |
g |
Zum Anfang der Liste |
shift+G |
Zum Ende der Liste |
/ |
Suchen (im aktuellen Panel) |
q |
Lazygit beenden |
esc |
Zurück / Aktion abbrechen |
? |
Hilfe anzeigen (alle Tasten) |
tab |
In neuem Panel: zwischen Bereichen springen |
Panel 1: Status (ganz links)
Zeigt, ob du im normalen Modus, im Rebase, Merge-Konflikt etc. bist.
Normalerweise springst du mit 1-5 direkt in die anderen Panels.
Panel 2: Dateien / Working Tree
Hier siehst du alle geänderten, neuen und gelöschten Dateien.
| Taste | Aktion |
|---|---|
Leertaste |
Datei stagen/unstagen (markiert) |
a |
Alle Dateien stagen/unstagen |
c |
Commit erstellen (öffnet Editor für Commit-Message) |
shift+C |
Commit mit Editor (git commit) |
enter |
Diff der ausgewählten Datei anzeigen |
d |
Änderungen der Datei verwerfen (Achtung, unwiderruflich!) |
shift+D |
Datei aus Working Tree löschen |
e |
Datei im Editor öffnen |
o |
Datei mit Standardprogramm öffnen |
i |
Datei zu .gitignore hinzufügen / Eintrag entfernen |
p |
Patch – interaktiv nur Teile einer Datei stagen |
Patch-Modus (p)
Nach Drücken von p auf einer Datei:
| Taste | Aktion |
|---|---|
Leertaste |
Aktuellen Hunks stagen/unstagen |
j / k |
Zwischen Hunks navigieren |
v |
Selektionsmodus (visuell) – dann Leertaste für Auswahl |
tab |
In Diff-Fenster springen |
Panel 3: Branches
| Taste | Aktion |
|---|---|
Leertaste |
Branch auschecken |
n |
Neuen Branch erstellen |
c |
Branch mit Namen umbenennen (checkout) |
shift+C |
Branch umbenennen (ohne checkout) |
d |
Branch löschen |
shift+D |
Branch force-löschen (auch wenn nicht gemerged) |
m |
Aktuellen Branch in ausgewählten Branch mergen |
M |
Merge ohne Fast-Forward |
enter |
Commits des Branches anzeigen |
r |
Branch rebasen auf ausgewählten Branch |
f |
Fast-Forward des ausgewählten Branches |
T |
Tag erstellen |
g |
Branch zurücksetzen (reset) auf ausgewählten |
Panel 4: Commits (im Branch-Panel mit Enter)
| Taste | Aktion |
|---|---|
s |
Squash down – Commit in den darunterliegenden squashen |
shift+S |
Fixup – Commit in darunterliegenden squashen, Message verwerfen |
r |
Rebase auf diesen Commit starten / Rebase fortsetzen |
R |
Commit-Message mit git commit --amend bearbeiten |
A |
Commit mit Staged-Änderungen amendend (git commit –amend) |
t |
Commit rückgängig machen (revert) |
shift+T |
Revert erstellen, ohne zu commiten |
ctrl+j / ctrl+k |
Commit in der Liste nach unten/oben verschieben (interaktiv) |
g |
Reset auf diesen Commit – Optionen: |
soft – HEAD verschieben, Index bleibt |
|
mixed (default) – HEAD + Index verschieben |
|
hard – HEAD + Index + Working Tree (Achtung, verwirft!) |
|
d |
Commit löschen (während Rebase) |
shift+D |
Commits ab hier löschen (während Rebase) |
f |
Fixup-Commit erstellen |
shift+F |
Fixup-Commit für einen bestimmten Commit |
enter |
Dateien des Commits anzeigen |
ctrl+l |
Commit-Log anzeigen |
shift+C |
Commit kopieren (cherry-pick) |
v |
Commits in die Zwischenablage kopieren |
Panel 5: Stash
| Taste | Aktion |
|---|---|
Leertaste |
Stash anwenden |
g |
Stash anwenden und danach löschen (pop) |
d |
Stash löschen |
enter |
Dateien des Stashs anzeigen |
n |
Neuen Stash mit Nachricht erstellen |
s |
Schnell-Stash (ohne Nachricht) |
Reflog
Mit ctrl+o (oder im Commits-Panel) öffnest du das Reflog – alle HEAD-Bewegungen.
| Taste | Aktion |
|---|---|
enter |
Reflog-Eintrag anzeigen |
g |
Auf diesen Eintrag zurücksetzen (soft/mixed/hard) |
ctrl+o |
Reflog schließen |
Remote / Push & Pull
| Taste | Aktion |
|---|---|
p |
Push (im Branch- oder Commits-Panel) |
shift+P |
Force-Push (--force-with-lease) |
shift+F |
Fetch (alle Remotes) |
ctrl+p |
Pull (fetch + merge) |
shift+ctrl+P |
Pull mit Rebase |
Undo / Redo
Lazygit hat eine eingebaute Undo-Funktion – ein Lebensretter!
| Taste | Aktion |
|---|---|
z |
Letzte Git-Aktion rückgängig machen (undo) |
shift+Z |
Rückgängig gemachte Aktion wiederholen (redo) |
Funktioniert für: Commit, Stash, Branch-Reset, Checkout, Cherry-Pick, Revert, Merge …
Konflikte lösen
Im Merge-Konflikt-Fall zeigt Lazygit die betroffenen Dateien.
| Taste | Aktion |
|---|---|
Leertaste |
Datei als “ours” markieren (eigene Version) |
b |
Datei als “theirs” markieren (fremde Version) |
↑ / ↓ |
Hunk auswählen |
Leertaste |
Hunk auswählen (ours/theirs oder beide) |
a |
Alle Hunks auf einmal akzeptieren |
shift+M |
Merge-Tool für diese Datei öffnen |
Submodule
| Taste | Aktion |
|---|---|
enter |
In Submodule wechseln (öffnet neue Lazygit-Instanz) |
i |
Submodule init |
u |
Submodule updaten |
n |
Submodule hinzufügen |
Worktrees
| Taste | Aktion |
|---|---|
n |
Neues Worktree erstellen |
enter |
In Worktree wechseln |
d |
Worktree löschen |
Tipps & häufige Workflows
Änderungen committen
1. j/k → Datei auswählen
2. Leertaste → Stagen
3. c → Commit-Message schreiben, Enter
4. p → Pushen
Letzten Commit ändern (amend)
1. a → Alle Dateien stagen
2. shift+A → Amend (fügt Staged-Änderungen zum letzten Commit hinzu)
Branch erstellen und wechseln
1. 3 → Branch-Panel
2. n → Neuen Branch, Namen eingeben, Enter
Commits zusammenfassen (squash)
1. 4 → Commits-Panel
2. j/k → Commit auswählen (der, der in den darunterliegenden gesquasht werden soll)
3. s → Squash
Commit rückgängig machen
1. 4 → Commits-Panel
2. g → "reset"
3. soft → HEAD verschieben, Änderungen bleiben im Index
Falls du es dir anders überlegst: z (undo).
Interaktives Rebase
1. 4 → Commits-Panel
2. r auf einem älteren Commit → Rebase starten
3. j/k → Commits auswählen, dann s/f/d zum Squashen/Fixen/Löschen
4. r → Rebase fortsetzen
Konfiguration
Die Konfigurationsdatei liegt unter:
- Linux/macOS:
~/.config/lazygit/config.yml - Windows:
%APPDATA%/lazygit/config.yml
Beispiel für ein nützliches Config-Snippet:
gui:
theme:
activeBorderColor:
- '#89b4fa'
- bold
inactiveBorderColor:
- '#a6adc8'
nerdFontsVersion: "3"
git:
paging:
colorArg: always
pager: delta --dark --paging=never
# Commit-Konvention für Merge-Commits
commitPrefixes:
my_project:
pattern: "^(\\w+\\/\\w+-\\d+)"
replace: "[$1] "
Fazit
Lazygit macht Git massiv schneller: Du siehst Diff, Branches, Commits und
Stashes gleichzeitig, stagen mit Leertaste, commiten mit c, pushen mit p.
Kein git status-Tippen mehr, kein git log --oneline-Starren.
Die beiden wichtigsten Tasten: z für Undo und ? für Hilfe.