gitui
Blazing 💥 fast terminal-ui for git written in rust 🦀
A fast, keyboard-driven git interface that runs in your terminal, letting you browse commits, stage changes, and manage branches without leaving the command line.
GitUI is a terminal-based user interface for Git. The description calls it a blazing-fast terminal-ui for Git, written in Rust, and the README's headline expands that to "the comfort of a Git GUI but right in your terminal." Instead of typing long Git commands by hand, you launch gitui in a repo and get a keyboard-driven screen that shows your changes, history, branches and stashes. The feature list covers keyboard-only control with context-based help so you don't have to memorise hotkeys; inspecting, committing and amending changes with support for the pre-commit, commit-msg, post-commit and prepare-commit-msg hooks; staging, unstaging, reverting and resetting files, hunks or individual lines; the full set of stash operations (save, pop, apply, drop, inspect); push and fetch with remotes; a branch list with create, rename, delete, checkout and remote operations; browsing and searching the commit log and diffing committed changes; submodule support; and gpg commit signing with documented shortcomings. The README reports a benchmark against lazygit and tig on the Linux kernel's 900k-commit repository: gitui finished in 24 seconds using 0.17 GB of memory without freezing or crashing. The author lists known limitations such as no sparse-repo support, no git-lfs support, and credential.helper for https needing manual configuration. You would reach for GitUI when you do most of your work in a terminal but want a friendlier interface for staging hunks, browsing log, stashing or working in giant repos where graphical clients become unresponsive. It is written in Rust, MIT-licensed, and minimum supported Rust/cargo is 1.88.
Where it fits
- Browse and search commit history in a large repository without waiting for a slow graphical application to load.
- Stage individual lines or sections of code changes directly from the terminal using keyboard navigation.
- Manage branches, stash work in progress, and push/fetch from remote servers without switching windows.
- Work efficiently on codebases with hundreds of thousands of commits while using minimal memory.