GitUI provides you with the comfort of a git GUI but right in your terminal.
GitUI is a terminal-based Git interface designed to provide the comfort of a graphical user interface directly within your terminal. It offers fast and intuitive keyboard-only control, making it easy to navigate and interact with your Git operations without leaving the command line.
Key Features:
Fast Keyboard Control: Navigate through Git operations effortlessly using keyboard shortcuts.
Context-Based Help: Access help dynamically based on your current context, reducing the need to memorize commands.
Commit Management: Inspect, commit, and amend changes with support for hooks like pre-commit and commit-msg.
File Staging: Stage, unstage, revert, and reset files, hunks, or lines of code efficiently.
Branch Operations: Create, rename, delete, and checkout branches, including remote management.
Audience & Benefit:
Ideal for developers who prefer the terminal environment but desire a GUI-like experience. GitUI enhances efficiency by streamlining common Git tasks within your familiar terminal setup, allowing you to work seamlessly without switching environments. It can be installed via winget, ensuring easy setup across compatible systems.
README
GitUI provides you with the comfort of a git GUI but right in your terminal
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):
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.
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.
a c compiler (msvc, gcc or clang, cargo will find it)
To run the complete test suite python is required (and it must be invocable as python)
Cargo Install
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
Cargo Features
trace-libgit
enable libgit2 tracing
works if libgit2 built with -DENABLE_TRACE=ON
this feature enabled by default, to disable: cargo install --no-default-features