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

PanelKeyContent
Status1Repo name, branch, upstream
Files2Modified files, staging
Branches3Local/remote branches, tags
Commits4Commit history with diffs
Stash5Stashed changes

Essential Keybindings

ActionKey
Stage/unstage filespace
Stage alla
Commitc
Amend last commitA
PushP
Pullp
New branchn
Checkout branchspace
Merge branchM
Rebase onto branchr
Cherry-pickC (copy), V (paste)
Squash commits
Fixup commitf
Reword commitr
Interactive rebasee
Resolve conflictselect side, space
Undoz
Help?

Comparison

FeatureLazygitGitKrakenGit CLIDelta
TypeTUIGUICLIPager
Staging hunksVisualVisual-p flagN/A
Interactive rebaseVisualVisualText editorN/A
Conflict resolutionVisualVisualManualN/A
FreeYesFreemiumYesYes
Terminal-nativeYesNoYesYes

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