gfold:388⭐的 Rust 多仓库 Git 状态追踪器,一目了然的管理体验
gfold:388⭐的 Rust 多仓库 Git 状态追踪器
当你的 ~/projects 或 ~/src 目录下躺着几十个 Git 仓库时,逐个进入目录执行 git status 检查状态是一场噩梦。gfold 是一款用 Rust 编写的 CLI 工具,它可以在一秒钟内扫描并展示所有仓库的状态——哪些有未提交的更改、哪些落后于远程、哪些干净如新。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | nickgerace/gfold |
| Stars | 388 |
| 语言 | Rust |
| 特点 | 并行扫描、只读操作、配置持久化 |
| 最后更新 | 1周前 |
它解决了什么问题
现代开发者的工作流通常涉及多个项目:
- 主项目、工具库、配置文件的 repo 分散在不同目录
- 想确认「今天修改了哪些地方」需要逐个
cd+git status - 有些 repo 可能已被修改但忘记提交,有些可能落后于上游
- CI/CD 脚本需要批量检查多个仓库的状态
gfold 的设计哲学是「只读、快速、并行」。它不会修改任何文件,只是给你一个清晰的全景图。
核心特性
并行扫描
gfold 使用 rayon 库实现并行处理,基于 git2-rs 进行 Git 操作。无论你有 10 个还是 100 个仓库,都能在瞬间完成扫描。
多种显示模式
默认输出是一个清晰的表格,展示每个仓库:
- 状态:Clean(干净)、Unclean(有未提交更改)、Unpushed(有未推送提交)
- 分支:当前所在分支
- 路径:相对于扫描根目录的路径
还支持「经典模式」(classic display mode),以更紧凑的格式输出,适合在 CI 或脚本中使用。
配置文件支持
如果你经常在特定目录运行 gfold,可以创建配置文件避免重复输入路径:
# 生成配置文件模板
gfold -d classic ~/projects --dry-run > ~/.config/gfold.toml
配置文件支持:
- 默认扫描路径(支持多个)
- 默认显示模式
- 颜色输出开关
安全设计
gfold 只读取文件系统,永不写入。你可以在任何环境(包括生产服务器)放心使用,不必担心意外修改仓库状态。
快速开始
# 通过 cargo 安装
cargo install gfold
# 或通过 Homebrew (macOS/Linux)
brew install gfold
# 在当前目录扫描所有 Git 仓库
gfold
# 扫描指定目录
gfold ~/projects
# 使用经典模式输出
gfold -d classic
# 忽略配置文件,使用默认设置
gfold -i
对比:gfold 与其他 Git 管理工具
| 工具 | Stars | 定位 | 核心差异 |
|---|---|---|---|
| lazygit | 58k+ | TUI Git 客户端 | 功能全面,适合深度操作单个仓库 |
| ghq | 12k+ | 仓库管理器 | 专注于仓库的克隆和组织 |
| myrepos | 700+ | 多仓库批处理 | 支持批量执行任意命令 |
| gfold | 388 | 状态概览 | 快速、只读、一览全局 |
gfold 的定位是「状态仪表盘」而非「操作工具」。它不会取代 lazygit 或 tig,而是填补了「快速查看多个仓库状态」这个空白场景。
适用场景
- 每日站会前:快速确认昨天修改了哪些项目
- 周末整理:检查有哪些实验性项目的更改忘记提交
- CI 健康检查:在构建前确认所有依赖仓库处于干净状态
- 新员工 onboarding:快速了解团队项目的整体状态
当前限制
- 只读设计:如果你需要批量执行 Git 操作,仍需配合其他工具
- 无交互能力:发现状态异常后,需要手动进入目录处理
- 功能克制:388 stars 说明它专注于单一功能,不会变成万能工具
总结
gfold 是一款「小而美」的工具,它不做很多事情,但把「多仓库状态查看」这件事做到极致。Rust 带来的性能优势让它在扫描大量仓库时依然迅捷,只读设计确保了使用安全。
对于维护多个项目的开发者来说,gfold 是 ls 和 git status 之间缺失的那一环。388 stars 说明它还处于小众阶段,但正是这种专注让它值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/nickgerace/gfold |
| 许可证 | Apache-2.0 |
| 语言 | Rust |
| 维护者 | @nickgerace |