一个基于 Electron 的桌面应用,用于监控本地目录下所有项目的 Git 状态。
这个应用完全是通过 Cursor 进行开发的。除了部分配置文件外,所有的代码都由 AI 生成,展示了 AI 辅助编程的强大能力。Cursor 的 AI 功能帮助我们快速构建了这个功能完整的 Git 状态监控应用。(甚至这句话也是指使 Cursor 写的)
- 🗂️ 目录监听: 支持父目录一级扫描,或添加多个根目录,通过目录树勾选任意层级的 Git 仓库
- 🔍 Git 状态检查: 自动检测每个子目录是否为 Git 仓库
- 📊 状态概览: 显示每个项目的详细 Git 状态信息
- 🔄 实时刷新: 手动刷新状态,获取最新的 Git 信息
- 🎨 现代化 UI: 美观的用户界面,支持响应式设计
应用会显示以下 Git 状态信息:
- ✅ 同步: 本地与远程完全同步
⚠️ 有未提交的更改: 存在未提交的修改- ⬆️ 未推送: 有本地提交但未推送到远程
- ⬆️ 领先远程: 本地提交领先远程分支
- ⬇️ 落后远程: 本地分支落后远程分支
- ❌ 非 Git 仓库: 该目录不是 Git 仓库
- Node.js 18+
- Git 已安装并配置
- 克隆项目
git clone <repository-url>
cd gitok- 安装依赖
npm install
# 或者使用 yarn
yarn install- 启动开发模式
npm run dev
# 或者使用 yarn
yarn dev# 构建所有平台
npm run build
# 构建特定平台
npm run build:mac # macOS
npm run build:win # Windows
npm run build:linux # Linux- 点击右上角「设置」,选择监听方式。
- 「父目录扫描」:选择包含多个项目的父目录,监听它的一级子文件夹。
- 「手动选择」:添加一个或多个根目录,展开目录树并勾选 Git 仓库。根目录本身也可以勾选,勾选不会自动包含内部仓库。
- 点击「应用」保存并刷新;取消或关闭设置会丢弃未应用的修改。两种模式分别记住配置。
- 使用「刷新状态」更新结果,或在设置中开启自动检查(本地每分钟、远程每十分钟)。远程状态基于本地已有远程引用,不执行
git fetch。
已选项目不可用时会显示错误并在下次刷新时重试,不会自动移除。应用空清单会暂停扫描,保留自动检查偏好。
npm test # 配置、目录发现、Git 状态及定时调度测试
npm run lint
npm run build
npm run test:watch-ui # Electron 界面回归测试,需要图形桌面环境界面测试使用临时 Git 仓库和独立的应用配置目录,不更改现有监听设置。测试完成后输出截图及报告所在的临时目录。
- 前端: React 19 + TypeScript
- 桌面框架: Electron
- 构建工具: Vite + Electron Vite
- 样式: CSS3 + 响应式设计
src/
├── main/ # Electron 主进程
├── preload/ # 预加载脚本
└── renderer/ # React 渲染进程
├── components/ # React 组件
└── assets/ # 样式和资源文件
- 主进程负责文件系统操作和 Git 命令执行
- 渲染进程提供用户界面和状态管理
- 通过 IPC 通信实现主进程和渲染进程的数据交换
MIT License
欢迎提交 Issue 和 Pull Request!