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: 比命令行快在哪? A: 复杂操作(interactive rebase、hunk staging、cherry-pick 多个 commit)用 TUI 点选远快于输命令。
Q: 能看 git 执行了什么吗?
A: 按 p 进入 log 面板,右下角有实时 command log,能看到每步实际跑的 git 命令。
Q: Merge conflict 怎么处理?
A: Lazygit 会显示冲突文件,按 enter 进入可视化冲突解决器(选择 ours/theirs/both)。
来源与致谢 Sources
- GitHub: https://github.com/jesseduffield/lazygit
- License: MIT