Crates.io | gitui |
lib.rs | gitui |
version | 0.26.3 |
source | src |
created_at | 2020-03-24 20:35:23.705545 |
updated_at | 2024-06-02 12:58:27.393918 |
description | blazing fast terminal-ui for git |
homepage | https://github.com/extrawurst/gitui |
repository | https://github.com/extrawurst/gitui |
max_upload_size | |
id | 222427 |
size | 3,835,254 |
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.
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 ✅ |
These are the high level goals before calling out 1.0
:
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! ❤️
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.
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 install gitui
scoop install gitui
choco install gitui
Nixpkg
nix-env -iA nixpkgs.gitui
NixOS
nix-env -iA nixos.gitui
pkg install gitui
conda install -c conda-forge gitui
Available for download in releases
Binaries available for:
All contain a single binary file
see NIGHTLIES.md
Minimum supported rust
/cargo
version: 1.70
To build openssl dependency (see https://docs.rs/openssl/latest/openssl/)
To run the complete test suite python is required (and it must be invocable as python
)
The simplest way to start playing around with gitui
is to have cargo
build and install it with cargo install gitui --locked
. If you are not familiar with rust and cargo: Getting Started with Rust
enable libgit2
tracing
works if libgit2
built with -DENABLE_TRACE=ON
this feature enabled by default, to disable: cargo install --no-default-features
see FAQs page
To run with logging enabled run gitui -l
.
This will log to:
$HOME/Library/Caches/gitui/gitui.log
XDG
: $XDG_CACHE_HOME/gitui/gitui.log
$HOME/.cache/gitui/gitui.log
%LOCALAPPDATA%/gitui/gitui.log
gitui
should automatically work on both light and dark terminal themes.
However, you can customize everything to your liking: See Themes.
The key bindings can be customized: See Key Config on how to set them to vim
-like bindings.
See CONTRIBUTING.md.
Thanks goes to all the contributors that help make GitUI amazing! ❤️
Wanna become a co-maintainer? We are looking for you!