22,641
stars
+21+19+87
797
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
[![CI][s0]][l0] [![crates][s1]][l1] ![MIT][s2] [![UNSAFE][s3]][l3] [![TWEET][s6]][l6] [![dep_status][s7]][l7] [![discord][s8]][l8] [s0]: https://github.com/gitui-org/gitui/workflows/CI/badge.svg [l0]: https://github.com/gitui-org/gitui/actions [s1]: https://img.shields.io/crates/v/gitui.svg [l1]: https://crates.io/crates/gitui [s2]: https://img.shields.io/badge/license-MIT-blue.svg [s3]: https://img.shields.io/badge/unsafe-forbidden-success.svg [l3]: https://github.com/rust-secure-code/safety-dance/ [s6]: https://img.shields.io/twitter/follow/extrawurst?label=follow&style=social [l6]: https://twitter.com/intent/follow?screen_name=extrawurst [s7]: https://deps.rs/repo/github/gitui-org/gitui/status.svg [l7]: https://deps.rs/repo/github/gitui-org/gitui [s8]: https://img.shields.io/discord/1176858176897953872 [l8]: https://discord.gg/rQNeEnMhus GitUI provides you with the comfort of a git GUI but right in your terminal ! Table of Contents 1. Features 2. Motivation 3. Benchmarks 4. Roadmap 5. Limitations 6. Installation 7. Build 8. FAQs 9. Diagnostics 10. Color Theme 11. Key Bindings 12. Sponsoring 13. Inspiration 14. Contributing 15. Contributors 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 - gpg commit signing with shortcomings (see 97)) 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 ✅ | 10 | No ✅ | No ✅ | | lazygit | 57 s | 2.6 | 25 | 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: visualize branching structure in log tab (81) interactive rebase (32) - no git-lfs support (see 2812) 5. Known Limitations Top ▲ - no sparse repo support (see 12