ez2git 是一款面向本地开发流程的现代桌面 Git 客户端,参考 GitKraken 的图谱化交互方式,目标是让版本管理像保存文件一样直观。
项目采用“本地持续备份,阶段完成后主动发布”的工作模式:本地备份不依赖网络,也不会自动上传;只有用户主动确认后,提交才会发布到 GitHub。应用使用内置的 git2-rs/libgit2 Git 引擎,终端用户无需预装系统 Git。
当前状态:MVP 开发中。基础能力与历史安全基线已经完成,本地 Git 核心与统一工作区仍在完善,暂不建议作为稳定生产工具使用。功能清单按最新开发分支统计,稳定主分支可能晚于本文所列进度。
- 降低 Git 使用门槛,让不熟悉命令行和暂存区的用户也能可靠保存项目版本。
- 用一键本地备份、安全恢复和保护点机制,优先保护尚未发布的工作成果。
- 通过提交关系图展示分支、标签、提交详情以及本地与远程的同步状态。
- 明确分离本地版本管理和 GitHub 发布,避免未经确认的网络操作。
- 在同一套仓库和历史上提供直观操作与常用专业 Git 能力。
- 面向 Windows 和 Linux 提供可安装、可验证的桌面应用。
- Tauri、React、TypeScript 与 Rust 桌面应用基础架构。
- 使用 SQLite 保存最近项目、收藏状态和项目元数据。
- 打开已有 Git 仓库,或将普通目录初始化为 Git 仓库。
- 搜索、收藏、切换和移除项目记录,并可在系统文件管理器中打开目录。
- 展示工作区变更和仓库状态。
- 一键收集未忽略的变更并创建本地备份提交;无变更时不会产生空提交。
- 备份过程保持本地化,不会隐式执行 Fetch 或 Push。
- 读取全部引用的提交历史,并分页生成稳定的提交关系图。
- 虚拟化渲染提交图谱,支持搜索、筛选、缩放和引用显示控制。
- 查看提交标题、作者、时间、完整 SHA、父提交和文件变更。
- 根据提交可达性展示本地、远程跟踪和同步状态。
- 在恢复前生成预览,检查工作区状态、文件冲突和潜在阻断条件。
- 自动创建保护点,并通过新的恢复提交还原目标版本,不重写已有历史。
- 支持恢复事务校验、失败回滚、审计记录和异常后的写入隔离。
- GitKraken 风格的统一工作区与以历史图谱为中心的导航。
- 展示已暂存和未暂存文件,并支持暂存与取消暂存。
- 查看文件差异,并对工作区变更执行受保护的丢弃操作。
- 创建普通提交、修订最近提交以及反向提交历史变更。
- 查看和管理本地分支。
- 查看远程跟踪分支,并从远程跟踪引用创建或检出本地跟踪分支。
- 完成标签管理。
- 持久化提交身份和其他非敏感应用设置。
- 完成 Windows 与 Linux 的人工桌面验收。
- GitHub OAuth Device Flow 登录与系统凭据安全存储。
- 创建 GitHub 仓库、设置公开性以及关联已有远程仓库。
- HTTPS Clone、Fetch、安全 Pull 和安全 Push。
- 远程分支创建、删除和 upstream 跟踪。
- 传输进度、取消、重试以及分叉历史处理。
- Fast-forward 与三方合并。
- 冲突识别、解决和中止合并。
- Stash、Cherry-pick 和受保护的交互式 Rebase。
- 可恢复的长操作状态与 Pull 集成。
- 仓库信任边界、过滤器检测和安全诊断。
- 按仓库串行化写操作、结构化日志与崩溃恢复。
- 无障碍、键盘操作、本地化和布局加固。
- 大型仓库性能测试与针对性优化。
- Windows 与 Linux 安装包、冒烟测试和完整发布验收。
| 阶段 | 范围 | 状态 |
|---|---|---|
| 1 | 应用基础、项目管理、本地备份、历史图谱与安全恢复基线 | 已完成 |
| 2 | 本地 Git 核心与统一工作区体验 | 进行中 |
| 3 | GitHub 登录、仓库管理与远程同步 | 未开始 |
| 4 | 合并、冲突、Stash、Cherry-pick 与 Rebase | 未开始 |
| 5 | 安全可靠性、无障碍、性能、打包与发布验收 | 未开始 |
当前可概括为:5 个 MVP 阶段中 1 个已完成,第 2 个阶段正在开发。历史图谱与安全恢复已有自动化测试基线,但完整的 Windows/Linux 人工桌面验收仍待执行。
- 桌面框架:Tauri 2
- 前端:React、TypeScript、Vite
- 后端:Rust
- Git 引擎:
git2-rs/libgit2 - 本地存储:SQLite
- 测试:Vitest、Testing Library、Rust 单元测试与真实仓库集成测试
ez2git 仍处于 MVP 开发阶段。涉及恢复、丢弃、分支或远程写入的功能,请先在测试仓库中验证,并保留独立备份。