extrawurst /gitui

Blazing 💥 fast terminal-ui for git written in rust 🦀

★ 22,641⑂ 797
RustCreated 2020-03-16
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

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON