63 个版本

0.26.3 2024年6月2日
0.26.1 2024年4月14日
0.25.2 2024年3月22日
0.24.3 2023年9月14日
0.1.2 2020年3月27日

#39 in 开发工具

Download history 331/week @ 2024-05-02 318/week @ 2024-05-09 1024/week @ 2024-05-16 382/week @ 2024-05-23 910/week @ 2024-05-30 453/week @ 2024-06-06 341/week @ 2024-06-13 261/week @ 2024-06-20 251/week @ 2024-06-27 297/week @ 2024-07-04 261/week @ 2024-07-11 269/week @ 2024-07-18 677/week @ 2024-07-25 315/week @ 2024-08-01 206/week @ 2024-08-08 189/week @ 2024-08-15

每月 1,421 次下载

MIT 许可证

4.5MB
36K SLoC

包含 (MSI 安装程序, 1MB) wix/Microsoft_VC142_CRT_x64.msm

CI crates MIT UNSAFE TWEET dep_status discord

GitUI 为您提供 Git GUI 的舒适体验,但直接在终端中实现

目录

  1. 功能
  2. 动机
  3. 基准测试
  4. 路线图
  5. 限制
  6. 安装
  7. 构建
  8. 常见问题解答
  9. 诊断
  10. 颜色主题
  11. 快捷键
  12. 赞助
  13. 灵感
  14. 贡献
  15. 贡献者

1. 功能 顶部 ▲

  • 快速且直观的 仅键盘 控制
  • 基于上下文帮助 (无需记忆 大量快捷键)
  • 检查、提交和修改变更(包括钩子:pre-commitcommit-msgpost-commitprepare-commit-msg
  • 暂存、取消暂存、撤销和重置文件、代码块和行
  • 暂存(保存、弹出、应用、丢弃、检查)
  • 推送到/从远程获取
  • 分支列表(创建、重命名、删除、检出、远程)
  • 浏览/ 搜索 提交日志、比较已提交的变更
  • 响应式终端 UI
  • 异步 Git API 以实现流畅控制
  • 子模块支持
  • gpg 提交签名存在不足(见 #97

2. 动机 顶部 ▲

我大部分的 Git 工作都在终端中完成,但经常需要使用 Git GUI 来处理一些用例,如:索引、提交、差异、暂存、归咎和日志。

不幸的是,流行的 Git GUI 在处理大型仓库时都会失败或变得无响应,无法使用。

GitUI 为您提供 Git GUI 的用户体验和舒适度,但直接在您的终端中实现,同时具有便携性、快速、免费和开源的特点。

3. 基准测试 顶部 ▲

对于一次 RustBerlin 活动演讲幻灯片),我通过解析整个 Linux git 仓库(包含超过 90 万次提交)来比较了 lazygittiggitui

时间 内存(GB) 二进制(MB) 冻结 崩溃
gitui 24 秒 0.17 1.4
lazygit 57 秒 2.6 16 有时
tig 4 分 20 秒 1.3 0.6 有时

4. 通往 1.0 的路线图 顶部 ▲

这些是在达到 1.0 之前的高层次目标

  • 在日志标签中可视化分支结构(#81
  • 交互式变基(#32

5. 已知限制 顶部 ▲

  • 不支持稀疏仓库(见 #1226
  • 不支持 git-lfs(见 #1089
  • credential.helper 对于 https 需要被 显式 配置(见 #800

目前,这个工具不能完全替代 git shell,然而两个工具配合使用效果良好。

gitui 的优先级在于那些在 git shell 上操作时让我感到沮丧的功能,比如暂存、暂存行或块。最终,我将能够使 gitui 成为一种一站式解决方案——但我需要帮助——目前这只是一个业余时间的项目。

欢迎所有支持!赞助商也欢迎! ❤️

6. 安装 顶部 ▲

GitUI 处于测试阶段,可能包含错误和缺失的功能。然而,对于个人使用来说,它是相当稳定的,并且在开发过程中也在使用。

Packaging status

各种包管理器

安装说明
Arch Linux
pacman -S gitui
Fedora
sudo dnf install gitui
Gentoo

可在 dm9pZCAq 覆盖层 中找到

sudo eselect repository enable dm9pZCAq
sudo emerge --sync dm9pZCAq
sudo emerge dev-vcs/gitui::dm9pZCAq
openSUSE
sudo zypper install gitui
Homebrew(macOS)
brew install gitui
MacPorts(macOS)
port install gitui
Winget(Windows)
winget install gitui
Scoop(Windows)
scoop install gitui
Chocolatey(Windows)
choco install gitui
Nix(Nix/NixOS)

Nixpkg

nix-env -iA nixpkgs.gitui

NixOS

nix-env -iA nixos.gitui
Termux(Android)
pkg install gitui
Anaconda
conda install -c conda-forge gitui

发布版本

发布中提供下载

二进制版本可用于

Linux

  • gitui-linux-x86_64.tar.gz(linux musl 静态链接)
  • gitui-linux-aarch64.tar.gz(64 位 arm 的 Linux)
  • gitui-linux-arm.tar.gz
  • gitui-linux-armv7.tar.gz

所有都包含单个二进制文件

macOS

  • gitui-mac.tar.gz(arm64)
  • gitui-mac-x86.tar.gz(Intel x86)

Windows

  • gitui-win.tar.gz(单个 64 位二进制文件)
  • gitui-win.msi(64 位安装包)

夜间构建

NIGHTLIES.md

7. 构建 顶部 ▲

需求

Cargo 安装

开始使用 gitui 的最简单方法是使用 cargo 构建和安装它,使用以下命令:cargo install gitui --locked。如果您不熟悉 rust 和 cargo,请参阅 Rust 入门

Cargo 功能

trace-libgit

启用 libgit2 追踪

如果 libgit2 使用 -DENABLE_TRACE=ON 构建,则该功能将正常工作

此功能默认启用,要禁用: cargo install --no-default-features

8. 常见问题解答 顶部 ▲

查看 常见问题解答页面

9. 诊断 顶部 ▲

要启用日志记录运行,请使用 gitui -l

这将记录到

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

10. 主题 顶部 ▲

gitui 应该可以在亮色和暗色终端主题上自动运行。

但是,您可以自定义一切:请参阅 主题

11. 键绑定 顶部 ▲

键绑定可以自定义:请参阅 键配置 了解如何将它们设置为类似 vim 的绑定。

12. 赞助 顶部 ▲

github

13. 启发 顶部 ▲

14. 贡献 顶部 ▲

请参阅 CONTRIBUTING.md

15. 贡献者 顶部 ▲

感谢所有帮助GitUI变得出色的贡献者!❤️

想要成为共同维护者吗?我们正在寻找

依赖关系

~37–54MB
~1M SLoC