用 Rust 编写的 Git 极速终端 UI

k8s技术圈

共 1183字,需浏览 3分钟

 ·

2021-06-03 23:10

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

浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报