用 Rust 编写的 Git 极速终端 UI
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