What Lazygit Does
- Staging — stage/unstage files, hunks, or lines interactively
- Commits — amend, squash, fixup, reword, edit messages
- Branches — create, checkout, delete, rebase, fast-forward
- Merges/rebases — visual conflict resolution
- Stashes — save, apply, drop with previews
- Cherry-picking — visual across any commits
- Interactive rebase — move/drop/squash commits in a TUI
- Search — within the log
- Custom commands — define your own shortcuts
Architecture
Go binary + gocui TUI library. Wraps git commands under the hood — the TUI just orchestrates them. Works in any git repo, no special setup needed.
Self-Hosting
CLI tool.
Key Features
- Interactive staging by hunk or line
- Visual rebase and cherry-pick
- Conflict resolution helper
- Stash management
- Command log (see what git commands ran)
- Custom commands
- Themes
- Git LFS, submodules, worktrees
- Easy undo with
z
Comparison
| Tool | Type | Speed | Scope |
|---|---|---|---|
| Lazygit | TUI | Fast | Full git |
| tig | TUI | Fast | History-focused |
| gitui | TUI (Rust) | Fastest | Full git |
| git CLI | CLI | Fast | Full git |
| GitKraken | GUI | Slow | Full git |
| Sourcetree | GUI | Slow | Full git |
FAQ
Q: Where does it beat the command line? A: For complex operations (interactive rebase, hunk staging, cherry-picking multiple commits), clicking through a TUI is far faster than typing commands.
Q: Can I see what git is actually executing?
A: Press p to open the log panel; the bottom-right shows a real-time command log of the git commands actually run.
Q: How do I handle merge conflicts?
A: Lazygit shows conflicted files — press enter to open the visual conflict resolver (choose ours/theirs/both).
Sources & Credits
- GitHub: https://github.com/jesseduffield/lazygit
- License: MIT