用 Rust 編寫(xiě)的 Git 極速終端 UI
GitUI 是一個(gè)用 Rust 編寫(xiě)的用于 git 的終端 UI,我們的目標(biāo)是在不離開(kāi)你心愛(ài)的命令行終端窗口的情況下,以快速、只需鍵盤(pán)和跨平臺(tái)的方式簡(jiǎn)化常見(jiàn)的 git 任務(wù)。

我的大部分 git 工作都是在終端進(jìn)行的,但我也經(jīng)常發(fā)現(xiàn)自己在一些場(chǎng)景下會(huì)使用 git GUI,比如:index、commit、diff、stash、blame 和日志等操作。
不過(guò)一些流行的 git GUI 應(yīng)用在大型倉(cāng)庫(kù)中就會(huì)出現(xiàn)各種問(wèn)題,為解決這些問(wèn)題,最終我決定用 Rust 開(kāi)發(fā)了 GitUI。
GitUI 具有如下一些特性:
- 快速和直觀的鍵盤(pán)控制
- 基于上下文的幫助(不需要記住大量的快捷鍵)
- 檢查、提交和修改變化(包括hooks:commit-msg/post-commit)
- 暫存、取消暫存、恢復(fù)和重置文件、代碼行
- 存儲(chǔ)(保存、Pop、應(yīng)用、刪除和檢查)
- Push/Fetch/從遠(yuǎn)程
- 分支列表(創(chuàng)建、重命名、刪除、checkout、遠(yuǎn)程)
- 瀏覽提交日志,對(duì)已提交的修改進(jìn)行比較
- 可擴(kuò)展的終端布局
- 用于控制流的異步 git API
解析整個(gè) Linux 的 git 倉(cāng)庫(kù)(包含超過(guò)90萬(wàn)個(gè)提交)比較了 lazygit、tig 和 gitui 的性能,得到了如下所示的結(jié)果:
不過(guò)目前而言,這個(gè)產(chǎn)品還處于 alpha 階段。當(dāng)然對(duì)于個(gè)人用戶來(lái)說(shuō),它是相當(dāng)穩(wěn)定的,而且我在開(kāi)發(fā) GitUI 本身的時(shí)候也在用他自己。要安裝的話是非常簡(jiǎn)單的。
Homebrew (macOS)
- brew install gitui
Scoop (Windows)
- scoop install gitui
Chocolatey (Windows)
- choco install gitui
也可以直接在 Releases 頁(yè)面下載二進(jìn)制文件進(jìn)行安裝:https://github.com/extrawurst/gitui/releases
此外我們也可以自己使用源碼進(jìn)行構(gòu)建,需要最新的 rust 和 cargo,并且安裝配置好,開(kāi)始使用 gitui 的最簡(jiǎn)單方法就是讓 cargo 構(gòu)建并使用 cargo install gitui 來(lái)安裝它。
gitui 還可以自動(dòng)在淺色和深色終端主題上工作。當(dāng)然你也可以根據(jù)自己的喜好進(jìn)行定制。可以查看主題介紹:https://github.com/extrawurst/gitui/blob/master/THEMES.md
倉(cāng)庫(kù)地址:https://github.com/extrawurst/gitui