git-fire/git-fire
GitHub: git-fire/git-fire
git-fire 是一个用 Go 编写的多仓库检查点 CLI 工具,通过单条命令自动发现、提交并推送多个 Git 仓库的工作状态,为跨仓库场景提供安全、可审计的批量备份能力。
Stars: 2 | Forks: 0
# Git Fire - 多仓库检查点 CLI
` 来选择性加载项目本地文件。
- **自动提交策略控制:** 选择是否通过默认行为包含包含未提交更改的工作树,或通过 `--skip-auto-commit` 跳过它们。
- **会话日志记录:** 每次运行都会在 `~/.cache/git-fire/logs/` 下写入结构化日志,以实现可审计性和便于调试。
- **工作流组合:** 与钩子、包装脚本、任务运行器或 CI 辅助脚本结合使用,以实现一致的团队或个人自动化。
## 功能与使用场景映射
| 功能 | 日常开发 | 自动化代理 | IT/基础设施 | 红队 | 紧急情况 |
|---|---|---|---|---|---|
| 并行多仓库执行 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 持久化仓库注册表 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Dry-run 规划 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 密钥检测防护(默认阻止) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 结构化 JSON 日志 (`~/.cache/git-fire/logs/`) | ⚪ 可选 | ✅ | ✅ | ✅ | ⚪ 可选 |
| `--status` SSH/仓库快照 | ✅ | ✅ | ✅ | ✅ | ⚪ 可选 |
| 冲突安全的备份分支(正常流程中无强制推送) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 插件内部机制(`v0.2` CLI 自动加载目标) | 🔜 | 🔜 | 🔜 | 🔜 | 🔜 |
## 为什么在 Alpha 阶段值得信赖
- 正常流程中不使用强制推送。
- 冲突策略会在需要时创建备份分支(`git-fire-backup-*`)。
- Dry-run 提供无副作用的计划预览。
- 密钥检测默认会阻止自动提交/推送(如果您明确接受风险,可在配置中覆盖)。
- 结构化日志创建了机器可读的审计跟踪。
- 旨在降低手动工作流中静默失败模式(跨多个仓库的网络、身份验证和命令排序错误)带来的风险。
- 250+ 测试覆盖了核心的非 UI 包。
## 核心命令
```
# 默认 streamed checkpoint 流程
git-fire
git fire
# 非破坏性预览
git-fire --dry-run
git-fire --fire-drill
# TUI 选择器模式
git-fire --fire
# 扫描特定 root
git-fire --path ~/projects
# 仅推送现有 commits(不自动 commit)
git-fire --skip-auto-commit
# 检查 auth + repo 状态
git-fire --status
# 使用显式 config 路径(项目本地 opt-in)
git-fire --config ./git-fire.toml
# 仅在此运行中使用已知 registry repos
git-fire --no-scan
# 生成 config 模板
git-fire --init
```
## 一劳永逸的可重复性
`git-fire` 将发现的仓库持久化保存在 `~/.config/git-fire/repos.toml` 中。一旦被发现,除非您明确忽略它们,否则这些仓库将保留在未来运行的范围内。
详见 [docs/REGISTRY.md](docs/REGISTRY.md)。
## 通过插件扩展(`v0.2`)
插件支持正在积极开发中。命令插件的内部机制已经存在,但默认的 CLI 从配置自动加载是 `v0.2` 的目标。
详见 [docs/agentic-flows.md](docs/agentic-flows.md)。
### TUI 颜色主题
您可以在 `git-fire --fire` 中重新定义火焰效果和边框/强调色:
| 主题 | 风格 |
|---------|-------|
| `classic` | 原始橙色/黄色火焰 |
| `synthwave` | 80 年代霓虹紫/粉/青 |
| `forest` | 绿色余烬调色板 |
| `arctic` | 冷色调青/冰调色板 |
| 方式 | 如何操作 |
|--------|-----|
| TUI 内设置 | 按下 **`c`** → **Color profile** → `space` / `←` / `→` |
| 配置文件 | 在 `[ui]` 下设置 `color_profile` |
```
[ui]
show_fire_animation = true
color_profile = "synthwave"
```
自定义十六进制调色板已计划但尚未启用。未来的版本将允许用户为火焰和强调色自定义十六进制颜色列表。
### 插件的可扩展性
命令插件允许您触发额外的备份/通知步骤(例如 S3 同步、通过 curl 调用 webhook、本地归档脚本)。
详见 [PLUGINS.md](PLUGINS.md) 和 [examples/plugins/s3-upload.md](examples/plugins/s3-upload.md)。
## 文档
从 [docs/README.md](docs/README.md) 开始。
- Agentic 工作流:[docs/agentic-flows.md](docs/agentic-flows.md)
- 安全和操作工作流:[docs/security-ops.md](docs/security-ops.md)
- 行为规范:[GIT_FIRE_SPEC.md](GIT_FIRE_SPEC.md)
- 贡献指南:[CONTRIBUTING.md](CONTRIBUTING.md)
- 验证状态:[docs/REQUIREMENTS_VALIDATION.md](docs/REQUIREMENTS_VALIDATION.md)
## 安全提示
在执行广泛备份之前:
- 将密钥排除在跟踪文件之外
- 依赖 `.gitignore` 和 `.git/info/exclude` 管理本地密钥文件
- 定期运行 `git-fire --dry-run` 以检查将被提交的内容
`git-fire` 包含密钥检测警告,但提交责任仍由用户承担。
## 贡献
欢迎贡献。详见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
MIT。详见 [LICENSE](LICENSE)。
标签:DevOps工具, EVTX分析, Git, Go语言, Python安全, TUI, 多仓库管理, 安全可观测性, 开发运维, 开源, 日志审计, 版本库生命周期, 版本控制, 程序破解, 紧急备份, 网络安全研究, 自动化备份, 自动提交