lazygit
The Git operations that are genuinely better with a UI — staging hunks, interactive rebase, resolving conflicts.
Homebrew formula Direct download
What it does
lazygit is a full-screen TUI over a real repository: panels for status, files, branches, commits, stash and the diff. Where it earns its place is the fiddly work — staging individual hunks or single lines with a keypress, reordering and squashing commits in an interactive rebase by moving a cursor, and resolving conflicts side by side.
lazygit # in any repository
# space stage · c commit · P push · R refresh · x show keybindingsNotes
It calls the git binary rather than reimplementing anything, so the repository state is always something plain Git commands can also reason about. Config lives at ~/Library/Application Support/lazygit/config.yml on macOS.
Alternative to
| Alternative | Type | Trade-off |
|---|---|---|
| tig | Open source | Lighter, focused on browsing history rather than performing operations |
| gitui | Open source | Rust, faster to start, a similar layout |
| Sublime Merge and Fork | Paid | GUIs, and the nicest diff viewers available |
| GitHub Desktop | Free | Simple, and enough for commit-and-push |
| magit or vim-fugitive | Open source | The same power, inside Emacs or Vim |
Install
brew install lazygit