GitUI — Blazing-Fast Terminal UI for Git Written in Rust
GitUI brings a Rust-fast terminal interface to Git: browse commits, stage hunks, view diffs, manage branches, and resolve conflicts — all without leaving the keyboard. A great complement (or alternative) to lazygit.
Installation agent prête
Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.
npx -y tokrepo@latest install a653bda2-380a-11f1-9bc6-00163e2b0d79 --target codexÀ exécuter après confirmation du plan en dry-run.
What it is
GitUI is a terminal user interface for Git written in Rust. It lets you browse commits, stage individual hunks, view diffs, manage branches, and resolve merge conflicts entirely from the keyboard without leaving your terminal. It renders instantly even on large repositories thanks to Rust's performance.
GitUI targets developers who prefer the terminal over GUI Git clients but want more visual feedback than raw Git commands provide. It is a complement or alternative to lazygit, offering a similar TUI experience with a focus on speed and low resource usage.
Why it saves time or tokens
Staging specific hunks or lines with git add -p is tedious and error-prone. GitUI provides a visual diff view where you select exactly what to stage with arrow keys. Browsing commit history, comparing branches, and managing stashes all happen without typing Git commands. For developers using AI agents, GitUI provides a fast way to review and stage the changes an agent made before committing.
How to use
- Install GitUI:
brew install gitui(macOS),cargo install gitui, or download the binary - Run
gituiin any Git repository - Navigate with keyboard shortcuts: Tab to switch panels, Enter to stage, c to commit
Example
# Launch GitUI in your repo
cd my-project
gitui
# Keyboard shortcuts:
# Tab - Switch between panels
# Enter - Stage/unstage file or hunk
# c - Open commit dialog
# d - View diff
# b - Branch management
# l - View log
# q - Quit
| Panel | Purpose |
|---|---|
| Status | Modified/staged files |
| Log | Commit history graph |
| Stashing | Save/restore work in progress |
| Diff | Line-by-line changes |
| Branches | Create, switch, merge, delete |
Related on TokRepo
- AI tools for coding — developer productivity tools on TokRepo
- Automation tools — Git and version control helpers
Common pitfalls
- GitUI key bindings differ from lazygit; switching between them requires relearning shortcuts
- Large binary files in the diff view can cause slow rendering; add them to .gitattributes to mark as binary
- GitUI does not support Git LFS operations directly; use the Git CLI for LFS-specific commands
Questions fréquentes
Both are terminal Git UIs. GitUI is written in Rust with a focus on startup speed and low memory usage. lazygit is written in Go with a slightly richer feature set and more customization options. Performance on large repos favors GitUI. Feature completeness slightly favors lazygit. Both are actively maintained.
GitUI supports basic rebase operations. For complex interactive rebases with reordering, squashing, and editing, you may need to drop to the Git CLI. GitUI's rebase support covers the most common cases like rebasing onto a branch.
Yes. GitUI supports a configuration file (key_bindings.ron) where you can remap keys to match your preferences. The config file uses the RON format. Place it in your platform's config directory and GitUI picks it up on startup.
Yes. GitUI is cross-platform and runs on Windows, macOS, and Linux. The Rust binary compiles natively for all platforms. On Windows, it works in CMD, PowerShell, and Windows Terminal with full color and Unicode support.
Open the diff view for a file, navigate to the hunk you want, and press Enter to stage the entire hunk. For line-level staging, select individual lines within a hunk using the selection keys and stage only those lines. This provides fine-grained control over what goes into each commit.
Sources citées (3)
- GitUI GitHub— GitUI is a blazing-fast terminal UI for Git written in Rust
- Git Docs— Git staging and diff operations
- Rust— Rust programming language for performance-critical applications
En lien sur TokRepo
Fil de discussion
Actifs similaires
Lightning CSS — Blazing-Fast CSS Parser and Minifier in Rust
An extremely fast CSS parser, transformer, bundler, and minifier written in Rust, designed to replace PostCSS and Autoprefixer with a single tool.
Lefthook — Fast Git Hooks Manager in Go
Blazing-fast Git hooks manager written in Go. Run linters, formatters, and tests on git commit/push in parallel. Zero-dependency single binary. Replaces Husky + lint-staged. 5,000+ stars.
Yazi — Blazing Fast Terminal File Manager in Rust
Yazi is a blazing fast terminal file manager written in Rust, based on async I/O. Preview images and videos in terminal, fuzzy search, batch operations, plugin system, and seamless integration with tools like fzf, zoxide, and rg.
fzf — Blazing Fast Command-Line Fuzzy Finder
fzf is a general-purpose command-line fuzzy finder written in Go. Blazing fast, portable, and composable with any list-producing command. Interactive picker for files, commands, history, git branches, processes, and more.