# gitTools **Repository Path**: wanggudu/git-tools ## Basic Information - **Project Name**: gitTools - **Description**: 一键提交git仓库,可切换仓库地址,悬浮框置顶显示,不遮挡主要窗口 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git Backup Windows 11 风格的 Git 一键备份工具。支持多仓库管理、默认/备注提交、悬浮窗快捷操作、系统托盘与 Toast 通知。 --- ## 功能特性 ### 主窗口 - **多仓库管理**:添加、删除、切换多个 Git 仓库,配置持久化保存 - **默认提交**:一键执行 `git pull` → `git add .` → `git commit -m "备份"` → `git push` - **备注提交**:自定义 Commit 消息后执行相同流程 - **Pull 选项**:可勾选「Push 前自动 Pull」,关闭后跳过 pull 步骤 - **实时日志**:窗口底部显示 Git 操作过程,支持复制 - **仓库验证**:添加仓库时自动检测 `.git` 目录 ### 悬浮窗 - 启动后自动显示,默认位于屏幕右下角 - 快捷按钮:**默认提交** / **备注提交** - 底部显示最近提交状态(如 `刚刚 · 提交成功`、`5分钟前 · 提交失败`) - 支持拖动(顶部手柄),位置自动记忆 - 半透明、无边框、始终置顶 ### 系统托盘 - 关闭主窗口后隐藏到托盘,不退出程序 - 托盘菜单:打开主窗口 / 显示悬浮窗 / 隐藏悬浮窗 / 退出程序 - 双击托盘图标恢复主窗口 ### 通知与日志 - **Toast 通知**:提交成功/失败时在屏幕右下角弹出提示 - **文件日志**:按天写入 `logs/` 目录(`gitbackup.log`) - 启动时自动检测 Git 是否安装 --- ## 环境要求 | 项目 | 要求 | |------|------| | 操作系统 | Windows 10 / 11 | | Python | >= 3.11(开发运行) | | Git | 已安装并加入 PATH | --- ## 开发运行 ### 1. 克隆 / 进入项目目录 ```powershell cd GitBackup ``` ### 2. 安装依赖 ```powershell pip install -r requirements.txt ``` ### 3. 启动程序 ```powershell python main.py ``` 或使用: ```powershell py main.py ``` --- ## 打包方法 项目使用 **PyInstaller** 打包为单文件 exe,无需安装 Python 即可运行。 ### 一键打包(推荐) ```powershell cd GitBackup build.bat ``` 脚本会自动完成: 1. 安装依赖 2. 生成应用图标 `assets/icon.ico` 3. 结束正在运行的 `GitBackup.exe` 进程 4. 清理旧的 `build/`、`dist/` 目录 5. 调用 PyInstaller 打包 6. 输出 `dist\GitBackup.exe` ### 打包前注意 - **先完全退出程序**(含系统托盘),否则可能因文件占用导致打包失败 - 若打包失败提示 `PermissionError`,可手动执行: ```powershell taskkill /IM GitBackup.exe /F del /f dist\GitBackup.exe build.bat ``` ### 手动打包 ```powershell pip install -r requirements.txt python -c "from ui.tray import ensure_icon_file; ensure_icon_file()" python -m PyInstaller GitBackup.spec --noconfirm --clean ``` 打包产物:`dist\GitBackup.exe`(约 30 MB) ### 分发使用 - 将 `GitBackup.exe` 复制到任意目录即可运行 - 首次运行会在同目录自动生成: - `config.json` — 仓库与窗口配置 - `logs/` — 运行日志 --- ## 使用说明 ### 添加仓库 1. 点击 **新增** 2. 选择 Git 仓库目录 3. 输入显示名称(如 `Vue后台`、`SpringBoot`) 4. 在下拉框中切换仓库 ### 提交备份 | 操作 | 说明 | |------|------| | 默认提交 | Commit 消息固定为 `备份` | | 备注提交 | 弹窗输入自定义 Commit 内容 | 无变更时提示「没有需要提交的内容」,不会继续 push。 ### 配置文件 `config.json` 示例: ```json { "repositories": [ {"name": "Vue后台", "path": "D:/projects/vue-admin"} ], "current_repository": "D:/projects/vue-admin", "window_position": "100,200", "floating_position": "1600,800", "theme": "system", "auto_pull": true } ``` --- ## 项目结构 ``` GitBackup/ ├── main.py # 程序入口 ├── config.py # 常量与路径 ├── git_manager.py # Git 操作 ├── repository_manager.py # 仓库管理 ├── models.py # 数据模型 ├── requirements.txt # Python 依赖 ├── build.bat # 一键打包脚本 ├── GitBackup.spec # PyInstaller 配置 ├── config.json # 用户配置 ├── ui/ # 界面模块 │ ├── main_window.py # 主窗口 │ ├── floating_window.py # 悬浮窗 │ ├── toast.py # Toast 通知 │ ├── tray.py # 系统托盘 │ └── ... ├── utils/ # 工具模块 │ ├── config_manager.py # 配置读写 │ ├── git_check.py # Git 检测 │ └── logger.py # 日志 ├── assets/ # 图标资源 └── logs/ # 运行日志 ``` --- ## 常见问题 **Q: 点击提交按钮没有反应?** A: 请确认已选择有效 Git 仓库;查看日志区是否有错误提示。 **Q: 打包后找不到 Git?** A: 请确认 Git 已安装;程序会自动查找 `C:\Program Files\Git\cmd\` 等常见路径。 **Q: 悬浮窗无法拖到右下角?** A: 拖动顶部细条移动窗口;若位置异常,可删除 `config.json` 中的 `floating_position` 后重启。 **Q: Toast 通知不显示?** A: 主窗口隐藏到托盘时,通知会通过悬浮窗弹出,请确保悬浮窗未被关闭。 --- ## 许可证 本项目遵循Apache-2.0开源协议。