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聚会演示(幻灯片)中,我比较了lazygit
、tig
和gitui
解析整个Linux git存储库(包含超过90万次提交)的性能:
时间 | 内存 (GB) | 二进制 (MB) | 冻结 | 崩溃 | |
---|---|---|---|---|---|
gitui | 24秒 ✅ | 0.17 ✅ | 10 | 否 ✅ | 否 ✅ |
lazygit | 57秒 | 2.6 | 25 | 是 | 有时 |
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位安装程序包)
每日构建
参见 NIGHTLIES.md
7. 构建 顶部 ▲
要求
-
最低支持的
rust
/cargo
版本:1.70
- 参见 安装 Rust
-
构建 openssl 依赖(参见 https://docs.rs/openssl/latest/openssl/)
- perl >= 5.12 (Windows 可使用 strawberry perl 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
- 使用
XDG
的 Linux:$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变得出色的贡献者!❤️
想成为共同维护者吗?我们正在寻找你!