lazygit
simple terminal UI for git commands
TL;DR · 30-second scan
lazygit (Go) — simple terminal UI for git commands
You want interactive rebase and partial staging without memorising flags, and you already work in a terminal.
CLI & Dev Tools · DevOps & Deploy
A terminal interface for git that makes the operations people avoid — interactive rebase, staging individual lines, cherry-picking, reflog recovery — into things you can see and do with one keypress. It is the fastest route from "I only know add, commit, push" to using git properly, because the interface shows you the state you are mutating. Go, MIT, actively maintained. The tradeoff: it is a layer over git, not a replacement, so when something genuinely strange happens you still need the underlying commands. Some argue that learning the UI instead of the CLI leaves a gap. In practice most people learn more git from watching lazygit than from the man pages.
You want interactive rebase and partial staging without memorising flags, and you already work in a terminal.
Your editor's git integration already covers your workflow, or you want to learn raw git commands first.
Add this badge to your README to show your project is curated on StackPicks. Free, lightweight (180×28 SVG), and gives your visitors a one-click way to see honest take + alternatives.
[](https://stackpicks.dev/repo/jesseduffield-lazygit)
<a href="https://stackpicks.dev/repo/jesseduffield-lazygit"><img src="https://stackpicks.dev/api/badge/jesseduffield-lazygit" alt="Featured on StackPicks" width="180" height="28" /></a>
Are you the maintainer of jesseduffield/lazygit? Add the badge and we'll feature your project in the weekly curator newsletter.