- Features
- Motivation
- Benchmarks
- Roadmap
- Limitations
- Installation
- Build
- FAQs
- Diagnostics
- Color Theme
- Key Bindings
- Sponsoring
- Inspiration
1. Features Top β²
- Fast and intuitive keyboard only control
- Context based help (no need to memorize tons of hot-keys)
- Inspect, commit, and amend changes (incl. hooks: pre-commit,commit-msg,post-commit,prepare-commit-msg)
- Stage, unstage, revert and reset files, hunks and lines
- Stashing (save, pop, apply, drop, and inspect)
- Push / Fetch to / from remote
- Branch List (create, rename, delete, checkout, remotes)
- Browse / Search commit log, diff committed changes
- Responsive terminal UI
- Async git API for fluid control
- Submodule support
2. Motivation Top β²
I do most of my git work in a terminal but I frequently found myself using git GUIs for some use-cases like: index, commit, diff, stash, blame and log.
Unfortunately popular git GUIs all fail on giant repositories or become unresponsive and unusable.
GitUI provides you with the user experience and comfort of a git GUI but right in your terminal while being portable, fast, free and opensource.
3. Benchmarks Top β²
For a RustBerlin meetup presentation (slides) I compared lazygit
,tig
and gitui
by parsing the entire Linux git repository (which contains over 900k commits):
Time | Memory (GB) | Binary (MB) | Freezes | Crashes | |
---|---|---|---|---|---|
gitui |
24 s β | 0.17 β | 1.4 | No β | No β |
lazygit |
57 s | 2.6 | 16 | Yes | Sometimes |
tig |
4 m 20 s | 1.3 | 0.6 β | Sometimes | No β |
4. Road(map) to 1.0 Top β²
These are the high level goals before calling out 1.0
:
5. Known Limitations Top β²
- no sparse repo support (see #1226)
- no support for GPG signing (see #97)
- no git-lfs support (see #1089)
- credential.helper for https needs to be explicitly configured (see #800)
Currently, this tool does not fully substitute the git shell, however both tools work well in tandem.
The priorities for gitui
are on features that are making me mad when done on the git shell, like stashing, staging lines or hunks. Eventually, I will be able to work on making gitui
a one stop solution - but for that I need help - this is just a spare time project for now.
All support is welcomed! Sponsors as well! β€οΈ
6. Installation Top β²
GitUI is in beta and may contain bugs and missing features. However, for personal use it is reasonably stable and is being used while developing itself.
Install Instructions
pacman -S gitui
sudo dnf install gitui
Available in dm9pZCAq overlay
sudo eselect repository enable dm9pZCAq
sudo emerge --sync dm9pZCAq
sudo emerge dev-vcs/gitui::dm9pZCAq
sudo zypper install gitui
brew install gitui
port install gitui
Winget (Windows)
winget install gitui
Scoop (Windows)
scoop install gitui
Chocolatey (Windows)
choco install gitui
Nix (Nix/NixOS)
Nixpkg
nix-env -iA nixpkgs.gitui
NixOS
nix-env -iA nixos.gitui
Termux (Android)
pkg install gitui
conda install -c conda-forge gitui