在终端里用 Git GUI,GitUI 拿下 2.2 万 Star

GitUI 是一个运行在终端里的 Git 图形客户端,用 Rust 编写,目前在 GitHub 上获得了 21966 个 Star。

正文顶部截图

日常开发中,很多 Git 操作在命令行里就能完成,但有些场景用图形界面确实更顺手:逐行 stage 代码、查看文件差异、管理 stash 列表、浏览 commit 历史。问题是常见的 Git GUI 工具在大型仓库上容易卡顿,甚至直接崩溃。GitUI 的设计目标就是在终端里提供 GUI 级的交互体验,同时保持接近命令行的速度和资源占用。

README区域截图

性能方面,作者在一次 Rust 社区分享中给出了具体数据。测试对象是完整的 Linux 内核仓库,超过 90 万次提交记录:

  • GitUI:24 秒完成加载,内存占用 0.17GB,运行期间无冻结无崩溃
  • lazygit:57 秒,内存 2.6GB,出现界面冻结和偶发崩溃
  • tig:4 分 20 秒,内存 1.3GB,偶有冻结

GitUI 的内存占用只有 lazygit 的 6.5%,加载速度快了两倍多。这个差距在面对大型仓库时尤为明显,因为 GitUI 采用异步 Git API,不会因为后台操作阻塞界面响应。

功能覆盖了 Git 日常操作的主要范围。文件层面支持 stage、unstage、revert 和 reset,粒度可以到 hunk 或者单行。stash 支持保存、应用、查看和丢弃。远程操作包括 push 和 fetch。分支管理涵盖创建、重命名、删除、切换和远程分支查看。commit 日志支持浏览和搜索,可以对比任意两次提交的差异。此外还支持子模块操作和 gpg 签名提交。

GitUI 的操作逻辑是纯键盘驱动,每个界面底部都有上下文帮助提示,不需要背诵快捷键组合。配色方案可以自定义,默认会自动适配终端亮色和暗色主题。快捷键方案同样可以调整为 vim 风格,方便习惯 vim 键位的用户。

目前项目处于 beta 阶段,有两个已知限制:不支持 sparse 仓库,以及 HTTPS 的 credential.helper 需要手动配置。Roadmap 里规划了分支拓扑可视化、交互式 rebase 等功能,目标是 1.0 时覆盖多数 Git 使用场景。

安装途径覆盖了主流平台。Arch Linux 上 pacman -S gitui;macOS 用 brew install gitui;Windows 可以用 winget、scoop 或 chocolatey 安装;Fedora、openSUSE、Gentoo 等发行版也有对应的包管理器支持。Termux 用户可以通过 pkg install gitui 在 Android 上使用。如果本地有 Rust 开发环境,直接 cargo install gitui --locked 也能完成安装。

ll gitui --locked 也能完成安装。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐