/gitui

blazing fast terminal-ui for git written in rust

Primary LanguageRustMIT LicenseMIT

CI crates MIT UNSAFE ITCH

blazing fast terminal-ui for git written in rust

features

  • fast and intuitive key only control
  • context based help (no need to remember any hot-key)
  • inspect/commit changes (incl. hooks: commit-msg/post-commit)
  • (un)stage files/hunks, revert/reset files/hunk
  • browse commit log
  • scalable ui layout
  • async input polling and
  • async git API for fluid control

known limitations

motivation

I do most of my git usage in a terminal but I frequently found myself using git UIs for some use cases like: index/commit, diff, stash and log.

Over the last 2 years my go-to GUI tool for this was fork because it was not bloated, snappy and free. Unfortunately the free part will change soon and so I decided to build a fast & simple terminal tool myself to copy the fork features i am using the most.

installation

For the time being this product is considered alpha and not production ready.

release binaries

see releases

homebrew (macos)

brew install extrawurst/tap/gitui

install from source

requirements

install rust/cargo: https://www.rust-lang.org/tools/install min rust version: 1.42

cargo install

the simplest way to start playing around with gitui is to have cargo build/install it:

cargo install gitui

diagnostics:

to enable logging:

GITUI_LOGGING=true gitui

this will log to:

  • $HOME/Library/Caches/gitui/gitui.log (mac)
  • $XDG_CACHE_HOME/gitui/gitui.log (linux using XDG)
  • $HOME/.cache/gitui/gitui.log (linux)

color theme

to change the colors of the program you have to modify theme.ron file Ron format located at config path (same as log paths). the list of valid colors can be found in ColorDef struct. note that rgb colors might not be available on some platforms.

inspiration