TL;DR — Quick Summary

Lazygit is an interactive terminal UI for Git. Stage hunks, resolve conflicts, interactive rebase, cherry-pick, and manage branches — all with keyboard shortcuts.

Lazygit puts the power of Git in a visual interface without leaving the terminal. Instead of remembering git rebase -i HEAD~5, you see your commits, select what to squash, and it’s done.

Installation

# macOS
brew install lazygit

# Arch Linux
sudo pacman -S lazygit

# Ubuntu (PPA)
sudo add-apt-repository ppa:lazygit-team/release
sudo apt update && sudo apt install lazygit

# Go
go install github.com/jesseduffield/lazygit@latest

# Launch
lazygit   # or: lg (common alias)

Key Panels

Panel Key Content
Status 1 Repo name, branch, upstream
Files 2 Modified files, staging
Branches 3 Local/remote branches, tags
Commits 4 Commit history with diffs
Stash 5 Stashed changes

Essential Keybindings

Action Key
Stage/unstage file space
Stage all a
Commit c
Amend last commit A
Push P
Pull p
New branch n
Checkout branch space
Merge branch M
Rebase onto branch r
Cherry-pick C (copy), V (paste)
Squash commit s
Fixup commit f
Reword commit r
Interactive rebase e
Resolve conflict select side, space
Undo z
Help ?

Comparison

Feature Lazygit GitKraken Git CLI Delta
Type TUI GUI CLI Pager
Staging hunks Visual Visual -p flag N/A
Interactive rebase Visual Visual Text editor N/A
Conflict resolution Visual Visual Manual N/A
Free Yes Freemium Yes Yes
Terminal-native Yes No Yes Yes

Summary

  • Lazygit is a terminal UI making Git visual and interactive
  • Stage files/hunks, commit, push, pull with single keystrokes
  • Visual interactive rebase, cherry-pick, and conflict resolution
  • Navigate branches, commits, stashes, and remotes in panels
  • Cross-platform, free, and works with any Git repository