https://github.com/extrawurst/gitui Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Changelog * Solutions + By Size + Enterprise + Teams + Compare all + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} extrawurst / gitui Public * * Notifications * Fork 312 * Star 9.2k Blazing fast terminal-ui for git written in rust License MIT license 9.2k stars 312 forks Star Notifications * Code * Issues 79 * Pull requests 27 * Discussions * Actions * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Security * Insights extrawurst/gitui This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 8 branches 44 tags Code * Clone HTTPS GitHub CLI [https://github.com/e] Use Git or checkout with SVN using the web URL. [gh repo clone extraw] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @dependabot @extrawurst dependabot[bot] and extrawurst Bump unicode-width from 0.1.9 to 0.1.10 ... e381188 Sep 17, 2022 Bump unicode-width from 0.1.9 to 0.1.10 Bumps [unicode-width](https://github.com/unicode-rs/unicode-width) from 0.1.9 to 0.1.10. - [Release notes](https://github.com/unicode-rs/unicode-width/releases) - [Commits](unicode-rs/unicode-width@v0.1.9...v0.1.10) --- updated-dependencies: - dependency-name: unicode-width dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] e381188 Git stats * 1,724 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .cargo .github .vscode assets asyncgit filetreelist invalidstring scopetime src wix .clippy.toml .gitignore CHANGELOG.md Cargo.lock Cargo.toml FAQ.md KEY_CONFIG.md LICENSE.md Makefile README.md THEMES.md demo.gif deny.toml rustfmt.toml vim_style_key_config.ron View code [ ] 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. Road(map) to 1.0 5. Known Limitations 6. Installation Arch Linux Fedora Gentoo Homebrew (macOS) MacPorts (macOS) Scoop (Windows) Chocolatey (Windows) Nix (Nix/NixOS) Termux (Android) Release Binaries 7. Build Requirements Cargo Install Cargo Features trace-libgit 8. FAQs 9. Diagnostics 10. Color Theme 11. Key Bindings 12. Sponsoring 13. Inspiration README.md [logo] CI crates MIT UNSAFE ITCH DISC TWEET GitUI provides you with the comfort of a git GUI but right in your terminal [demo] 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 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) * 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 commit log, diff committed changes * Scalable terminal UI layout * Async git API for fluid control * Submodule support 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 1.4 No No lazygit 57 s 2.6 16 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: * log search (commit, author, sha) (#449,#429) * visualize branching structure in log tab (#81) * interactive rebase (#32) 5. Known Limitations ^Top ^ * no sparse repo support (see #1226) * no support for GPG signing (see #97) * no git-lfs support (see #1089) * 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. All support is welcomed! Sponsors as well! [?] 6. Installation ^Top ^ For the time being this product is in alpha and is not considered production ready. However, for personal use it is reasonably stable and is being used while developing itself. Arch Linux pacman -S gitui Fedora sudo dnf install gitui Gentoo Available in dm9pZCAq overlay sudo eselect repository enable dm9pZCAq sudo emerge --sync dm9pZCAq sudo emerge dev-vcs/gitui::dm9pZCAq Homebrew (macOS) brew install gitui MacPorts (macOS) port install gitui Scoop (Windows) scoop install gitui Chocolatey (Windows) choco install gitui Nix (Nix/NixOS) Nixpkg nix-env -iA nixpkgs.gitui NixOS nix-env -iA nixos.gitui Termux (Android) pkg install gitui Release Binaries Available for download in releases Binaries available for: * Linux * macOS * Windows 7. Build ^Top ^ Requirements * Minimum supported rust/cargo version: 1.60 + See Install Rust Cargo Install The simplest way to start playing around with gitui is to have cargo build and install it with cargo install gitui. If you are not familiar with rust and cargo: Getting Started with Rust Cargo Features trace-libgit enable libgit2 tracing works if libgit2 builded with -DENABLE_TRACE=ON this feature enabled by default, to disable: cargo install --no-default-features 8. FAQs ^Top ^ see FAQs page 9. Diagnostics ^Top ^ To run with logging enabled run gitui -l. This will log to: * macOS: $HOME/Library/Caches/gitui/gitui.log * Linux using XDG: $XDG_CACHE_HOME/gitui/gitui.log * Linux: $HOME/.cache/gitui/gitui.log * Windows: %LOCALAPPDATA%/gitui/gitui.log 10. Color Theme ^Top ^ [light-them] gitui should automatically work on both light and dark terminal themes. However, you can customize everything to your liking: See Themes. 11. Key Bindings ^Top ^ The key bindings can be customized: See Key Config on how to set them to vim-like bindings. 12. Sponsoring ^Top ^ github 13. Inspiration ^Top ^ * lazygit * tig * GitUp + It would be nice to come up with a way to have the map view available in a terminal tool * git-brunch About Blazing fast terminal-ui for git written in rust Topics git bash rust terminal async tui command-line-tool hacktoberfest command-line-interface Resources Readme License MIT license Stars 9.2k stars Watchers 57 watching Forks 312 forks Releases 44 v0.21.0 Latest Aug 17, 2022 + 43 releases Sponsor this project Sponsor Learn more about GitHub Sponsors Packages 0 No packages published Used by 287 * @caoxiemeihao * @gtheric * @gambonny * @pyjcode * @Playfloor * @lightsnowball * @pe * @kyoto7250 + 279 Contributors 68 * @dependabot-preview[bot] * @dependabot[bot] * @extrawurst * @WizardOhio24 * @cruessler * @ImgBotApp * @dr-BEat * @jonstodle * @MCord * @alocquet * @yanganto + 57 contributors Languages * Rust 99.8% * Makefile 0.2% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.