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 开发工具
每月 1,421 次下载
4.5MB
36K SLoC
包含 (MSI 安装程序, 1MB) wix/Microsoft_VC142_CRT_x64.msm
GitUI 为您提供 Git GUI 的舒适体验,但直接在终端中实现
目录
1. 功能 顶部 ▲
- 快速且直观的 仅键盘 控制
- 基于上下文帮助 (无需记忆 大量快捷键)
- 检查、提交和修改变更(包括钩子:pre-commit、commit-msg、post-commit、prepare-commit-msg)
- 暂存、取消暂存、撤销和重置文件、代码块和行
- 暂存(保存、弹出、应用、丢弃、检查)
- 推送到/从远程获取
- 分支列表(创建、重命名、删除、检出、远程)
- 浏览/ 搜索 提交日志、比较已提交的变更
- 响应式终端 UI
- 异步 Git API 以实现流畅控制
- 子模块支持
- gpg 提交签名存在不足(见 #97)
2. 动机 顶部 ▲
我大部分的 Git 工作都在终端中完成,但经常需要使用 Git GUI 来处理一些用例,如:索引、提交、差异、暂存、归咎和日志。
不幸的是,流行的 Git GUI 在处理大型仓库时都会失败或变得无响应,无法使用。
GitUI 为您提供 Git GUI 的用户体验和舒适度,但直接在您的终端中实现,同时具有便携性、快速、免费和开源的特点。
3. 基准测试 顶部 ▲
对于一次 RustBerlin 活动演讲(幻灯片),我通过解析整个 Linux git 仓库(包含超过 90 万次提交)来比较了 lazygit
、tig
和 gitui
。
时间 | 内存(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
之前的高层次目标
5. 已知限制 顶部 ▲
目前,这个工具不能完全替代 git shell,然而两个工具配合使用效果良好。
gitui
的优先级在于那些在 git shell 上操作时让我感到沮丧的功能,比如暂存、暂存行或块。最终,我将能够使 gitui
成为一种一站式解决方案——但我需要帮助——目前这只是一个业余时间的项目。
欢迎所有支持!赞助商也欢迎! ❤️
6. 安装 顶部 ▲
GitUI 处于测试阶段,可能包含错误和缺失的功能。然而,对于个人使用来说,它是相当稳定的,并且在开发过程中也在使用。
各种包管理器
安装说明
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 位安装包)
夜间构建
7. 构建 顶部 ▲
需求
-
最低支持的
rust
/cargo
版本:1.70
- 查看 安装 Rust
-
构建 openssl 依赖项(见 https://docs.rs/openssl/latest/openssl/)
- perl >= 5.12(strawberry perl 在 windows 上适用 https://strawberryperl.com/)
- 一个 c 编译器(msvc, gcc 或 clang,cargo 会找到它)
-
要运行完整的测试套件,需要 python(并且它必须可以被作为
python
调用)
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. 赞助 顶部 ▲
13. 启发 顶部 ▲
- lazygit
- tig
- GitUp
- 希望能够想出一个方法,在终端工具中实现地图视图。
- git-brunch
14. 贡献 顶部 ▲
请参阅 CONTRIBUTING.md。
15. 贡献者 顶部 ▲
感谢所有帮助GitUI变得出色的贡献者!❤️
想要成为共同维护者吗?我们正在寻找 你!
依赖关系
~37–54MB
~1M SLoC