
LazyGit
Beloved terminal UI for Git: staging, rebasing, and conflict resolution without memorizing commands.
About
lazygit is a terminal-based user interface for Git written in Go by Jesse Duffield. It wraps Git's full power behind a split-pane TUI showing files, branches, commits, and stashes simultaneously, with keyboard-driven interactive staging (hunks or lines), interactive rebasing, side-by-side conflict resolution, cherry-picking, worktrees, submodules, and bisect. It is MIT-licensed, distributed as a single dependency-free binary, and has grown to 80,000+ GitHub stars as a staple of terminal-first workflows.
Custom commands and keybindings are defined in a YAML config file, and diff renderers like delta and difftastic can be plugged in. Limitations: it is a wrapper around Git rather than a rethink, so Git's underlying complexity still leaks through on edge cases; large repos can feel sluggish; and the keyboard-first UX has a real learning curve for mouse-oriented users.
What it can do
- Interactive staging and committing
- Interactive rebase (reorder, squash, fixup)
- Side-by-side conflict resolution
- Branch, stash, and worktree management
- Custom commands and keybindings
- Pluggable diff renderers
Setup
brew install lazygit, or install via Scoop/pacman/apt, or download a release binary from GitHub.
Prerequisites
A terminal emulator and Git installed.
Use cases
Works with
Trust score — 8/10
Scored 8/10 (verified tier, metrics-v1). Evidence: Verified via vendor site/docs/GitHub and reputable coverage, wave 66; Trending score 78/100 from researcher assessment.
★ 82,000 GitHub stars
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.