GitUI 是一个用 Rust 编写的用于 git 的终端 UI,我们的目标是在不离开你心爱的命令行终端窗口的情况下,以快速、只需键盘和跨平台的方式简化常见的 git 任务。
我的大部分 git 工作都是在终端进行的,但我也经常发现自己在一些场景下会使用 git GUI,比如:index、commit、diff、stash、blame 和日志等操作。
不过一些流行的 git GUI 应用在大型仓库中就会出现各种问题,为解决这些问题,最终我决定用 Rust 开发了 GitUI。
GitUI 具有如下一些特性:
- 快速和直观的键盘控制
- 基于上下文的帮助(不需要记住大量的快捷键)
- 检查、提交和修改变化(包括hooks:commit-msg/post-commit)
- 暂存、取消暂存、恢复和重置文件、代码行
- 存储(保存、Pop、应用、删除和检查)
- Push/Fetch/从远程
- 分支列表(创建、重命名、删除、checkout、远程)
- 浏览提交日志,对已提交的修改进行比较
- 可扩展的终端布局
- 用于控制流的异步 git API
解析整个 Linux 的 git 仓库(包含超过90万个提交)比较了 lazygit、tig 和 gitui 的性能,得到了如下所示的结果:
不过目前而言,这个产品还处于 alpha 阶段。当然对于个人用户来说,它是相当稳定的,而且我在开发 GitUI 本身的时候也在用他自己。要安装的话是非常简单的。
Homebrew (macOS)
- brew install gitui
Scoop (Windows)
- scoop install gitui
Chocolatey (Windows)
- choco install gitui
也可以直接在 Releases 页面下载二进制文件进行安装:https://github.com/extrawurst/gitui/releases
此外我们也可以自己使用源码进行构建,需要最新的 rust 和 cargo,并且安装配置好,开始使用 gitui 的最简单方法就是让 cargo 构建并使用 cargo install gitui 来安装它。
gitui 还可以自动在浅色和深色终端主题上工作。当然你也可以根据自己的喜好进行定制。可以查看主题介绍:https://github.com/extrawurst/gitui/blob/master/THEMES.md
仓库地址:https://github.com/extrawurst/gitui