跳到正文
发现
GitUI:终端里的 Git 图形界面
命令行工具开发者工具

GitUI:终端里的 Git 图形界面

用 Rust 编写的终端 Git 图形界面工具,为命令行用户提供快速、轻量的提交、分支与暂存操作体验。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v0.28.1
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

GitUI 是一个用 Rust 编写的终端 Git 界面(TUI)。作者日常的 git 操作都在终端里完成,但索引、提交、diff、stash、blame、log 这类场景又常常需要打开图形界面客户端;而流行的 Git GUI 在超大仓库上往往卡顿甚至无响应。GitUI 的目标就是把 Git GUI 的舒适体验搬进终端,同时保持可移植、快速、免费和开源。

GitUI 目前处于 beta 阶段,可能仍有缺陷和缺失功能,但就个人使用而言已经相当稳定——项目本身就是在 GitUI 里开发的。它的定位不是完全取代 git 命令行,而是与命令行配合使用,重点解决在 shell 里操作起来繁琐的环节,例如 stash、按行或按块暂存。

主要功能

  • 快速、直观的纯键盘操作
  • 基于上下文的帮助提示,无需记忆大量快捷键
  • 查看、提交和修补(amend)改动,支持 pre-commit、commit-msg、post-commit、prepare-commit-msg 钩子
  • 对文件、代码块(hunk)和行进行暂存、取消暂存、还原和重置
  • Stash 管理:保存、pop、apply、drop 与查看
  • Push / Fetch 远程仓库
  • 分支列表:创建、重命名、删除、切换、查看远程分支
  • 浏览与搜索提交日志,查看已提交改动的 diff
  • 响应式终端界面,异步 git API 保证操作流畅
  • 支持 submodule
  • 支持 gpg 提交签名(存在已知不足,见 #97)

性能对比

作者在一次 RustBerlin 分享中,用包含 90 多万次提交的 Linux 仓库对比了 lazygit、tig 和 gitui:

耗时 内存 (GB) 二进制 (MB) 卡死 崩溃
gitui 24 s ✅ 0.17 ✅ 10 否 ✅ 否 ✅
lazygit 57 s 2.6 25 是 有时
tig 4 m 20 s 1.3 0.6 ✅ 有时 否 ✅

安装与使用

GitUI 已进入多个发行版和包管理器仓库,常用安装方式:

# macOS
brew install gitui

# Windows
winget install gitui
scoop install gitui
choco install gitui

# Arch Linux
sudo pacman -S gitui

# Fedora
sudo dnf install gitui

# openSUSE
sudo zypper install gitui

# 通过 cargo 从源码安装
cargo install gitui --locked

此外还支持 Gentoo overlay、MacPorts、Mise、Nix/NixOS、Termux、Anaconda 等方式,官方 Releases 页面也提供 Linux(x86_64 / aarch64 / arm / armv7)、macOS(arm64 / intel x86)和 Windows(单文件二进制与 msi 安装包)的预编译包。

从源码构建需要:

  • rust/cargo 最低版本 1.88
  • 构建 openssl 依赖需要 perl >= 5.12 和一个 C 编译器(msvc、gcc 或 clang)
  • 运行完整测试套件需要 python(且能以 python 命令调用)

诊断与自定义

以 gitui -l 启动会开启日志,日志位置:

  • macOS:$HOME/Library/Caches/gitui/gitui.log
  • 使用 XDG 的 Linux:$XDG_CACHE_HOME/gitui/gitui.log
  • Linux:$HOME/.cache/gitui/gitui.log
  • Windows:%LOCALAPPDATA%/gitui/gitui.log

GitUI 会自动适配浅色和深色终端主题,也可以按 THEMES.md 完全自定义配色;按键绑定同样可改,参见 KEY_CONFIG.md,可配置为类似 vim 的绑定。

注意事项

当前已知限制:

  • 不支持 sparse repo(见 #1226)
  • https 方式的 credential.helper 需要显式配置(见 #800)
  • 不支持 git-lfs(见 #2812)

在 1.0 之前,项目计划中的高层目标还包括在 log 标签页中可视化分支结构(#81)和交互式 rebase(#32)。


本作品整理自 GitHub 开源项目 gitui-org/gitui,原作者 @gitui-org,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.28.1当前版本

    支持正式的 pre-push hook,改进 gitui --version 输出,Rust 最低版本升至 1.88;修复大仓库状态加载极慢的问题,以及无远程仓库时重命名或更新 remote URL 的崩溃。

评论