一个基于 Python tkinter 的 Git 仓库管理 GUI 工具,提供直观的界面来管理 Git 分支、Tag 和远程仓库。
- 📁 选择并加载本地 Git 仓库
- 🕐 最近使用仓库快速访问
- 🔄 自动刷新和离线刷新模式
- 📥 一键 Fetch 拉取远程更新
- 📋 显示本地和远程分支列表
- 🏷️ 状态标记:
[L]本地、[R]远程、[L+R]两者都有 - ⭐ 当前分支高亮显示(
*标记) - 🔍 分支搜索/过滤功能
- 🔀 双击快速切换分支
- 🗑️ 删除分支(支持本地+远程同时删除)
- 📋 右键菜单快捷操作
- 📋 显示本地和远程 Tag 列表
- 🏷️ 状态标记:
[L]本地、[R]远程、[L+R]两者都有 - 🔍 Tag 搜索/过滤功能
- 🗑️ 删除 Tag(支持本地+远程同时删除)
- 📋 右键菜单快捷操作
- 🚀 推送当前 HEAD 到指定远程分支
- ⚙️ 可选设置上游分支(
-u) ⚠️ 支持强制推送(--force-with-lease)- 🏷️ 可选同时创建并推送 Tag
- 📡 查看已配置的远程仓库
- ➕ 添加新远程(支持多种 URL 格式)
- ✏️ 编辑远程 URL
- 🗑️ 删除远程配置
- 🔄 HTTPS/SSH 协议快速切换
- 🔗 智能解析 GitHub URL(支持
user/repo简写格式)
- 📊 实时日志和进度显示
⚠️ 危险操作二次确认- ⌨️ 快捷键支持
- 💾 配置持久化(窗口大小、最近仓库等)
- 🤖 提交对话框支持 AI 一键生成提交信息(可手写可自动)
- 🗂️ 顶部多页面切换(可新增/关闭页面,切换不自动刷新)
| 快捷键 | 功能 |
|---|---|
F5 |
刷新仓库信息 |
Ctrl+P |
开始推送 |
Ctrl+F |
聚焦到分支搜索框 |
Delete |
删除选中的分支/Tag |
- Python 3.10+
- Git(已安装并配置在系统 PATH 中)
- tkinter(Python 标准库,通常已包含)
- 克隆仓库:
git clone https://github.com/your-username/auto-github.git
cd auto-github- 无需安装额外依赖,直接运行即可。
python start.py或使用向后兼容入口:
python git_repo_manager_gui.py目标机器仍需安装 Git,并确保
git在 PATH 中可用。
./build_exe.ps1输出文件:dist/git-repo-manager.exe
python -m venv ".venv"
./.venv/Scripts/python -m pip install --upgrade pip pyinstaller
./.venv/Scripts/python -m PyInstaller --clean --noconsole --onefile --name "git-repo-manager" "start.py"- 选择仓库:点击「选择...」按钮或从「最近」菜单选择仓库
- 查看信息:应用会自动加载分支、Tag 和远程信息
- 管理分支:
- 双击分支切换
- 右键菜单进行更多操作
- 使用搜索框过滤分支
- 推送代码:
- 选择远程和目标分支
- 可选创建 Tag
- 点击「开始推送」
- 点击「提交(Commit)」后,在弹窗中可点击「AI生成」自动填写提交信息。
- AI 生成支持流式输出,内容会实时填充到输入框。
- 若不点击「AI生成」,仍可保持原有手写输入流程。
- AI 生成基于当前改动内容(按“是否暂存全部”决定范围)。
- 顶部“页面”区域可维护多个仓库页面。
- 可点击“新增页面”添加新仓库页面,使用下拉框自由切换。
- 切换页面默认不自动刷新;可按需点击“刷新(F5)”手动刷新当前页面。
- 在项目根目录复制示例配置:
cp .env.example .env- 编辑
.env,默认配置(仅 TabCode 网关):
# TabCode Anthropic 网关(默认)
ANTHROPIC_AUTH_TOKEN=你的APIKey
ANTHROPIC_BASE_URL=https://api.tabcode.cc/claude/glm
ANTHROPIC_MODEL=glm-4.7
ANTHROPIC_VERSION=2023-06-01说明:
.env已加入.gitignore,不会被提交。- 若系统环境变量中已设置同名键,优先使用系统环境变量。
auto-github/
├── start.py # 入口文件
├── git_repo_manager_gui.py # 向后兼容入口
├── README.md # 项目说明
└── app/ # 应用包
├── __init__.py # 包初始化
├── __main__.py # python -m app 入口
├── config.py # 配置管理
├── models.py # 数据模型
├── git_utils.py # Git 工具函数
├── dialogs.py # 对话框类
├── services/ # Service 层(无 UI 依赖)
├── controllers/ # Controller 层(编排 UI 与 Service)
├── ui/ # UI 层(Frame 组件)
└── main.py # 主应用类
| 模块 | 说明 |
|---|---|
start.py |
应用入口点 |
app/config.py |
配置文件管理、AppConfig 类 |
app/models.py |
数据模型(GitCommandError、RepoData) |
app/git_utils.py |
Git 命令封装、URL 解析工具 |
app/dialogs.py |
对话框类(远程管理、确认对话框) |
app/services/repo_data_service.py |
仓库信息采集(RepoData) |
app/services/git_stream.py |
Git 流式执行(进度/日志) |
app/ui/main_view.py |
主视图(组装各 Frame) |
app/controllers/app_controller.py |
控制器(事件编排、线程/队列) |
app/main.py |
主应用类 GitRepoManagerApp |
应用配置保存在用户主目录下:
- Windows:
C:\Users\<用户名>\.git_repo_manager_config.json - macOS/Linux:
~/.git_repo_manager_config.json
配置内容包括:
- 最近使用的仓库列表(最多 10 个)
- 窗口大小和位置
- 上次打开的仓库路径
(待添加)
- 使用 Python 类型注解
- 遵循 PEP 8 规范
- 使用 dataclass 定义数据结构
如需添加新功能:
- 新增 Git 操作:在
app/git_utils.py中添加函数 - 新增对话框:在
app/dialogs.py中添加类 - 修改主界面:在
app/ui/frames中调整/新增 Frame,并在app/ui/main_view.py组装 - 接入业务逻辑:在
app/controllers/app_controller.py中新增/调整事件处理与 Git 操作编排
MIT License
欢迎提交 Issue 和 Pull Request!
- 初始版本
- 支持分支和 Tag 管理
- 支持推送功能
- 支持远程仓库管理
- 模块化代码结构