ITGeeker Batch Git Pull And Push
一个带图形界面的批量 Git Pull 和 Git Push 桌面工具,专为同时维护多个本地 Git 仓库的开发者打造。
GitHub 镜像 · Gitee 镜像 · ITGeeker 博客
项目简介
本工具属于 ITGeeker(技术奇客)开源软件系列。它提供一个 Tkinter 桌面图形界面,用来管理一组本地 Git 仓库,并对这些仓库一次性执行批量 git pull,或者 git add → git commit → git push 流水线。所有本地仓库、远程地址、SSH key 或 HTTPS 凭据都需要在运行前自行准备;本工具不替代 Git 本身,也不保存任何远程凭据。
核心特性
- 📂 自由添加或删除待处理的本地仓库目录;列表在退出时自动保存,并在下次启动时自动恢复。
- 🚀 一键对所有列表目录执行批量
git pull,或依次执行git add --all .→git commit -m <message>→git push。 - 💾 列表支持导出 / 导入为 JSON 文件,方便在多台机器之间共享。窗口位置、提交信息模板、自动
git add开关等偏好也会一并保存。 - 🖥️ 系统托盘常驻(基于
pystray),支持显示 / 隐藏、设置、关于、退出;托盘提示显示程序名、版本号、开发者。 - 🔒 单实例运行锁,长时间 Git 操作在后台线程中执行,UI 主循环不会卡顿。
- 📁 配置文件统一保存在用户主目录下,跨 Windows 与 Linux 行为一致。
屏幕截图

该界面由 Tkinter 渲染。
快速上手
环境要求
- Python 3.10 或更高版本:项目使用
from __future__ import annotations等现代语法,pyproject.toml中显式声明requires-python = ">=3.10"。 - Git 命令行客户端:
git必须在PATH中可调用,所有 Git 操作都通过subprocess调用外部git二进制。 - 可用的 Tk 桌面环境:Windows 自带的 Tk 即可;Linux 发行版通常需要单独安装 Tk 包(例如 Debian / Ubuntu 的
python3-tk)。 - 已存在的本地仓库、远程地址与认证:运行前请先通过
git clone准备好工作目录,并完成 SSH key 或 HTTPS 凭据配置;本工具不替你克隆仓库,也不保存凭据。
克隆与安装
Gitee(国内推荐)
git clone https://gitee.com/itgeeker/itgeeker_batch_git_pull_and_push.git
cd itgeeker_batch_git_pull_and_push
GitHub(国际镜像)
git clone https://github.com/alanljj/itgeeker_batch_git_pull_and_push.git
cd itgeeker_batch_git_pull_and_push
运行
推荐使用 uv 同步依赖并启动;如果没有 uv,请用 pip 加本地虚拟环境。
uv(跨平台)
uv sync
uv run main.py
pip + venv(Linux / macOS)
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
pip + venv(Windows PowerShell)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python main.py
基本使用
- 启动后,把要管理的本地仓库目录逐条加入主列表;重复路径会被自动检测并提示。
- 打开「设置」调整提交信息模板、是否在
commit前自动git add --all .,以及点击关闭按钮时是否隐藏到托盘。 - 点击主界面的「⬇ 批量 git pull」对所有列表目录执行
git pull。 - 点击「⬆ 批量 git push」对每个目录依次执行
git add --all .(取决于设置)→git commit -m <模板>→git push。 - 处理完成后会弹出汇总框,告知成功与失败的数量。
警告:默认的批量
git push工作流会在每个列表目录里按顺序执行git add --all .、git commit -m <message>、git push,从而把工作区里所有已变更的文件一并提交并推送。点击按钮前,请确认每个目标目录里没有意外的新增 / 删除或敏感文件。
配置说明
配置采用单个 JSON 文件,进程退出时自动保存,下次启动自动恢复。
| 平台 | 路径 |
|---|---|
| Windows | %USERPROFILE%\itgeeker_widget_config\config_batch_git.json |
| Linux / macOS | $HOME/itgeeker_widget_config/config_batch_git.json |
可保存的偏好:窗口位置与大小、目录列表、提交信息模板(默认 git push from ITGeeker Batch Git Pull And Push,可用 {app_name} 占位符)、是否在 commit 前自动 git add --all .、启动时是否最小化到托盘、关闭窗口时是否隐藏到托盘。
如需在多台机器之间共享目录列表,可使用主界面的「保存列表到文件 / Save List to File」与「读取列表文件 / Load List from File」,导出或导入一个简单的 JSON 文件。
贡献指南
- 在 GitHub 或 Gitee 上 Fork 本仓库(任一镜像皆可)。
- 新建特性分支:
git checkout -b feat/your-feature-name。 - 提交改动后,先在本地用
uv run main.py跑一遍主流程,确认行为正常。 - 把分支推送到你的 Fork 并发起 Pull / Merge Request,说明改动动机、测试方式与涉及的截图或 GIF。
开源协议
本项目以 木兰宽松许可证,第 2 版(Mulan Permissive Software License, v2) 发布。完整协议文本见仓库根目录的 LICENSE 文件。
相关链接
- ITGeeker 技术奇客官方博客:https://www.itgeeker.net
- FreeGeeker 开源专栏:https://www.freegeeker.com
- GeekerCloud 奇客罗方智能科技:https://www.geekercloud.com
由 技术奇客 ITGeeker.net 以 Mulan PSL v2 开源 · Maintained by ITGeeker













发表回复