← All posts

CLI

Lazygit: A Terminal UI That Makes Git Actually Pleasant

Lazygit is a fast terminal UI for git - stage hunks, build commits, and rebase interactively without memorizing flags.

L CLI

Git on the command line is powerful and, for anything past commit-and-push, genuinely awkward. Staging individual lines, reordering commits, resolving a conflict, or running an interactive rebase means remembering flag incantations and squinting at text output. Lazygit puts a fast, keyboard-driven terminal UI over all of it - you see your files, branches, commits, and stashes at once, and act on them with single keystrokes.

Stage Exactly What You Mean

The staging view is the immediate win. You can stage whole files, individual hunks, or single lines by moving a cursor and pressing space - the thing git add -p does clumsily, done visually. Building a clean, focused commit out of a messy working tree becomes quick instead of fiddly.

Interactive Rebase Without the Dread

Reordering, squashing, editing, and dropping commits happen in a visual list where the actions are labeled, so an interactive rebase stops being a nerve-wracking text file and becomes a few obvious keystrokes. Conflict resolution is laid out the same clear way.

Keyboard-Driven and Fast

It's a single binary that launches instantly in any repo, and everything is a keypress:

# Launch it in any git repo lazygit # Inside: space stages, c commits, P pushes, p pulls, # and the rebase menu handles squash/reorder/edit

Rough Edges and Limitations

  • There's a keymap to learn. It's intuitive, but the first hour is spent discovering which key does what.
  • It doesn't hide git's concepts. You still need to understand rebase and staging - it makes them easier, not automatic.
  • Terminal-bound. If you prefer a full graphical git client, this is a different niche.
  • Power can bite. Fast history rewriting is fast to do wrong, too - the usual git cautions apply.

For anyone who lives in the terminal, lazygit keeps you there for git work without the friction, and makes clean commits and rebases something you'll actually bother to do.

Internal link suggestion: link "lives in the terminal" to the fzf or Zoxide post for more CLI-productivity tooling.