[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5390":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":38,"discoverSource":39},5390,"gitui","gitui-org\u002Fgitui","gitui-org","Blazing 💥 fast terminal-ui for git written in rust 🦀","",null,"Rust",22095,737,92,231,0,2,43,175,21,102.6,"MIT License",false,"master",[26,27,28,29,30,31,32,33,34],"async","bash","command-line-interface","command-line-tool","git","hacktoberfest","rust","terminal","tui","2026-06-12 04:00:25","\u003Ch1 align=\"center\">\n\u003Cimg width=\"300px\" src=\"assets\u002Flogo.png\" \u002F>\n\n[![CI][s0]][l0] [![crates][s1]][l1] ![MIT][s2] [![UNSAFE][s3]][l3] [![TWEET][s6]][l6] [![dep_status][s7]][l7] [![discord][s8]][l8]\n\n\u003C\u002Fh1>\n\n[s0]: https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fworkflows\u002FCI\u002Fbadge.svg\n[l0]: https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Factions\n[s1]: https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fgitui.svg\n[l1]: https:\u002F\u002Fcrates.io\u002Fcrates\u002Fgitui\n[s2]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg\n[s3]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Funsafe-forbidden-success.svg\n[l3]: https:\u002F\u002Fgithub.com\u002Frust-secure-code\u002Fsafety-dance\u002F\n[s6]: https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fextrawurst?label=follow&style=social\n[l6]: https:\u002F\u002Ftwitter.com\u002Fintent\u002Ffollow?screen_name=extrawurst\n[s7]: https:\u002F\u002Fdeps.rs\u002Frepo\u002Fgithub\u002Fgitui-org\u002Fgitui\u002Fstatus.svg\n[l7]: https:\u002F\u002Fdeps.rs\u002Frepo\u002Fgithub\u002Fgitui-org\u002Fgitui\n[s8]: https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1176858176897953872\n[l8]: https:\u002F\u002Fdiscord.gg\u002FrQNeEnMhus\n\n\u003Ch5 align=\"center\">GitUI provides you with the comfort of a git GUI but right in your terminal\u003C\u002Fh1>\n\n![](demo.gif)\n\n## \u003Ca name=\"table-of-contents\">\u003C\u002Fa> Table of Contents\n\n1. [Features](#features)\n2. [Motivation](#motivation)\n3. [Benchmarks](#bench)\n4. [Roadmap](#roadmap)\n5. [Limitations](#limitations)\n6. [Installation](#installation)\n7. [Build](#build)\n8. [FAQs](#faqs)\n9. [Diagnostics](#diagnostics)\n10. [Color Theme](#theme)\n11. [Key Bindings](#bindings)\n12. [Sponsoring](#sponsoring)\n13. [Inspiration](#inspiration)\n14. [Contributing](#contributing)\n15. [Contributors](#contributors)\n\n## 1. \u003Ca name=\"features\">\u003C\u002Fa> Features \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n- Fast and intuitive **keyboard only** control\n- Context based help (**no need to memorize** tons of hot-keys)\n- Inspect, commit, and amend changes (incl. hooks: *pre-commit*,*commit-msg*,*post-commit*,*prepare-commit-msg*)\n- Stage, unstage, revert and reset files, hunks and lines\n- Stashing (save, pop, apply, drop, and inspect)\n- Push \u002F Fetch to \u002F from remote\n- Branch List (create, rename, delete, checkout, remotes)\n- Browse \u002F **Search** commit log, diff committed changes\n- Responsive terminal UI\n- Async git API for fluid control\n- Submodule support\n- gpg commit signing with shortcomings (see [#97](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F97)))\n\n## 2. \u003Ca name=\"motivation\">\u003C\u002Fa> Motivation \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nI 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.\n\nUnfortunately popular git GUIs all fail on giant repositories or become unresponsive and unusable.\n\nGitUI provides you with the user experience and comfort of a git GUI but right in your terminal while being portable, fast, free and opensource.\n\n## 3. \u003Ca name=\"bench\">\u003C\u002Fa> Benchmarks \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nFor a [RustBerlin meetup presentation](https:\u002F\u002Fyoutu.be\u002FrpilJV-eIVw?t=5334) ([slides](https:\u002F\u002Fgithub.com\u002Fextrawurst\u002Fgitui-presentation)) I compared `lazygit`,`tig` and `gitui` by parsing the entire Linux git repository (which contains over 900k commits):\n\n|           | Time       | Memory (GB) | Binary (MB) | Freezes   | Crashes   |\n| --------- | ---------- | ----------- | ----------- | --------- | --------- |\n| `gitui`   | **24 s** ✅ | **0.17** ✅  | 10         | **No** ✅  | **No** ✅  |\n| `lazygit` | 57 s       | 2.6         | 25          | Yes       | Sometimes |\n| `tig`     | 4 m 20 s   | 1.3         | **0.6** ✅   | Sometimes | **No** ✅  |\n\n## 4. \u003Ca name=\"roadmap\">\u003C\u002Fa> Road(map) to 1.0 \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nThese are the high level goals before calling out `1.0`:\n\n* visualize branching structure in log tab ([#81](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F81))\n* interactive rebase ([#32](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F32))\n- no git-lfs support (see [#2812](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F2812))\n\n## 5. \u003Ca name=\"limitations\">\u003C\u002Fa> Known Limitations \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n- no sparse repo support (see [#1226](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F1226))\n- *credential.helper* for https needs to be **explicitly** configured (see [#800](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F800))\n\nCurrently, this tool does not fully substitute the _git shell_, however both tools work well in tandem.\n\nThe 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.\n\nAll support is welcomed! Sponsors as well! ❤️\n\n## 6. \u003Ca name=\"installation\">\u003C\u002Fa> Installation \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nGitUI 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.\n\n\u003Ca href=\"https:\u002F\u002Frepology.org\u002Fproject\u002Fgitui\u002Fversions\">\n    \u003Cimg src=\"https:\u002F\u002Frepology.org\u002Fbadge\u002Fvertical-allrepos\u002Fgitui.svg\" alt=\"Packaging status\" align=\"right\">\n\u003C\u002Fa>\n\n### Various Package Managers\n\n\u003Cdetails>\n  \u003Csummary>Install Instructions\u003C\u002Fsummary>\n\n##### [Arch Linux](https:\u002F\u002Farchlinux.org\u002Fpackages\u002Fextra\u002Fx86_64\u002Fgitui\u002F)\n\n```sh\npacman -S gitui\n```\n\n##### Fedora\n\n```sh\nsudo dnf install gitui\n```\n\n##### Gentoo\nAvailable in [dm9pZCAq overlay](https:\u002F\u002Fgithub.com\u002Fgentoo-mirror\u002Fdm9pZCAq)\n\n```sh\nsudo eselect repository enable dm9pZCAq\nsudo emerge --sync dm9pZCAq\nsudo emerge dev-vcs\u002Fgitui::dm9pZCAq\n```\n\n##### [openSUSE](https:\u002F\u002Fsoftware.opensuse.org\u002Fpackage\u002Fgitui)\n\n```sh\nsudo zypper install gitui\n```\n\n##### Homebrew (macOS)\n\n```sh\nbrew install gitui\n```\n\n##### [MacPorts (macOS)](https:\u002F\u002Fports.macports.org\u002Fport\u002Fgitui\u002Fdetails\u002F)\n\n```sh\nport install gitui\n```\n\n##### [Winget](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwinget-pkgs\u002Ftree\u002Fmaster\u002Fmanifests\u002Fs\u002FStephanDilly\u002Fgitui) (Windows)\n\n```\nwinget install gitui\n```\n\n##### [Scoop](https:\u002F\u002Fgithub.com\u002FScoopInstaller\u002FMain\u002Fblob\u002Fmaster\u002Fbucket\u002Fgitui.json) (Windows)\n\n```\nscoop install gitui\n```\n\n##### [Chocolatey](https:\u002F\u002Fchocolatey.org\u002Fpackages\u002Fgitui) (Windows)\n\n```\nchoco install gitui\n```\n\n##### [Mise](https:\u002F\u002Fgithub.com\u002Fjdx\u002Fmise)\n\n```shell\nmise use -g gitui@latest\n```\n\n##### [Nix](https:\u002F\u002Fsearch.nixos.org\u002Fpackages?channel=unstable&show=gitui&from=0&size=50&sort=relevance&query=gitui) (Nix\u002FNixOS)\n\nNixpkg\n```\nnix-env -iA nixpkgs.gitui\n```\nNixOS\n```\nnix-env -iA nixos.gitui\n```\n\n##### [Termux](https:\u002F\u002Fgithub.com\u002Ftermux\u002Ftermux-packages\u002Ftree\u002Fmaster\u002Fpackages\u002Fgitui) (Android)\n\n```\npkg install gitui\n```\n\n##### [Anaconda](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fgitui)\n```\nconda install -c conda-forge gitui\n```\n\n\u003C\u002Fdetails>\n\n### Release Binaries\n\n[Available for download in releases](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Freleases)\n\nBinaries available for:\n\n#### Linux\n\n- gitui-linux-x86_64.tar.gz (linux musl statically linked)\n- gitui-linux-aarch64.tar.gz (linux on 64 bit arm)\n- gitui-linux-arm.tar.gz\n- gitui-linux-armv7.tar.gz\n\nAll contain a single binary file\n\n#### macOS\n\n- gitui-mac.tar.gz (arm64)\n- gitui-mac-x86.tar.gz (intel x86)\n\n#### Windows\n\n- gitui-win.tar.gz (single 64bit binary)\n- gitui-win.msi (64bit Installer package)\n\n### Nightly Builds\n\nsee [NIGHTLIES.md](.\u002FNIGHTLIES.md)\n\n## 7. \u003Ca name=\"build\">\u003C\u002Fa> Build \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n### Requirements\n\n- Minimum supported `rust`\u002F`cargo` version: `1.88`\n  - See [Install Rust](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall)\n\n- To build openssl dependency (see https:\u002F\u002Fdocs.rs\u002Fopenssl\u002Flatest\u002Fopenssl\u002F)\n  - perl >= 5.12 (strawberry perl works for windows https:\u002F\u002Fstrawberryperl.com\u002F)\n  - a c compiler (msvc, gcc or clang, cargo will find it)\n\n- To run the complete test suite python is required (and it must be invocable as `python`)\n\n### Cargo Install\n\nThe 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](https:\u002F\u002Fdoc.rust-lang.org\u002Fbook\u002Fch01-00-getting-started.html)\n\n### Cargo Features\n#### trace-libgit\nenable `libgit2` tracing\n\nworks if `libgit2` built with `-DENABLE_TRACE=ON`\n\nthis feature enabled by default, to disable: `cargo install --no-default-features`\n\n## 8. \u003Ca name=\"faqs\">\u003C\u002Fa> FAQs \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nsee [FAQs page](.\u002FFAQ.md)\n\n## 9. \u003Ca name=\"diagnostics\">\u003C\u002Fa> Diagnostics \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nTo run with logging enabled run `gitui -l`.\n\nThis will log to:\n\n- macOS: `$HOME\u002FLibrary\u002FCaches\u002Fgitui\u002Fgitui.log`\n- Linux using `XDG`: `$XDG_CACHE_HOME\u002Fgitui\u002Fgitui.log`\n- Linux: `$HOME\u002F.cache\u002Fgitui\u002Fgitui.log`\n- Windows: `%LOCALAPPDATA%\u002Fgitui\u002Fgitui.log`\n\n## 10. \u003Ca name=\"theme\">\u003C\u002Fa> Color Theme \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n![](assets\u002Flight-theme.png)\n\n`gitui` should automatically work on both light and dark terminal themes.\n\nHowever, you can customize everything to your liking: See [Themes](THEMES.md).\n\n## 11. \u003Ca name=\"bindings\">\u003C\u002Fa> Key Bindings \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nThe key bindings can be customized: See [Key Config](KEY_CONFIG.md) on how to set them to `vim`-like bindings.\n\n## 12. \u003Ca name=\"sponsoring\">\u003C\u002Fa> Sponsoring \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n[![github](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-GitHub%20Sponsors-fafbfc?logo=GitHub%20Sponsors)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fextrawurst)\n\n## 13. \u003Ca name=\"inspiration\">\u003C\u002Fa> Inspiration \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\n- [lazygit](https:\u002F\u002Fgithub.com\u002Fjesseduffield\u002Flazygit)\n- [tig](https:\u002F\u002Fgithub.com\u002Fjonas\u002Ftig)\n- [GitUp](https:\u002F\u002Fgithub.com\u002Fgit-up\u002FGitUp)\n  - It would be nice to come up with a way to have the map view available in a terminal tool\n- [git-brunch](https:\u002F\u002Fgithub.com\u002Fandys8\u002Fgit-brunch)\n\n## 14. \u003Ca name=\"contributing\">\u003C\u002Fa> Contributing \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## 15. \u003Ca name=\"contributors\">\u003C\u002Fa> Contributors \u003Csmall>\u003Csup>[Top ▲](#table-of-contents)\u003C\u002Fsup>\u003C\u002Fsmall>\n\nThanks goes to all the contributors that help make GitUI amazing! ❤️\n\nWanna become a co-maintainer? We are looking for [you](https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fissues\u002F2084)!\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgitui-org\u002Fgitui\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=gitui-org\u002Fgitui\" \u002F>\n\u003C\u002Fa>\n","gitui 是一个使用 Rust 语言编写的、面向终端的 Git 用户界面工具。它提供了一种快速且直观的键盘操作方式，支持上下文相关的帮助提示，无需记忆大量快捷键；具备提交、暂存、回滚等核心功能，并支持异步执行 Git 操作以保持流畅体验。此外，gitui 还拥有搜索提交日志、浏览差异以及处理子模块等功能。该工具特别适合那些习惯于在命令行环境中工作但又希望享受图形界面便捷性的开发者，在大型代码仓库中也能保持良好的响应速度和易用性。","2026-06-11 03:03:00","top_language"]