# git-sync-tool **Repository Path**: YongHeng8/git-sync-tool ## Basic Information - **Project Name**: git-sync-tool - **Description**: git 仓库同步工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-04 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git 仓库自动同步工具 🚀 一个功能强大的 Git 仓库批量同步工具,支持将本地多个 Git 仓库自动同步到 Gitee 或 GitHub。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) ## ✨ 主要功能 ### 核心功能 - 🖥️ **现代化界面**:使用 Tkinter 构建的简洁美观界面,支持系统原生文件对话框 - 📁 **智能扫描**:自动扫描指定目录下的所有 Git 仓库 - 🔄 **批量同步**:一次性同步多个 Git 仓库到目标平台 - 🎯 **远程选择**:支持选择不同的源远程仓库(origin、upstream 等) - 📝 **描述编辑**:双击编辑仓库描述,自动从 README 提取 ### 配置管理 - 💾 **多配置支持**:保存和切换多个同步配置(如多个 Gitee/GitHub 账号) - 💾 **扫描配置**:保存和加载扫描结果,避免重复扫描 - 🔐 **安全存储**:使用加密方式存储访问令牌 - 🏢 **组织支持**:支持同步到个人账户或组织仓库 ### 自动化功能 - ⏰ **定时同步**:支持设置每日定时自动同步 - ⏱️ **倒计时显示**:实时显示距离下次同步的时间(精确到秒) - 📊 **详细日志**:实时查看同步进度和详细日志 - 🔄 **智能同步**:只同步选中的仓库 ### 用户体验 - 📏 **可调整布局**:支持调整左右面板宽度 - 🚀 **自动创建**:远程仓库不存在时可自动创建 - 🌿 **完整同步**:支持同步所有分支和标签 - 📋 **状态显示**:清晰显示每个仓库的同步状态 ## 🚀 快速开始 ### 方式一:下载 EXE(Windows 用户推荐) 1. 前往 [Releases](https://gitee.com/YongHeng8/git-sync-tool/releases) 页面 2. 下载最新版本的 `Git仓库同步工具.exe` 3. 双击运行即可使用 ### 方式二:从源码运行 1. **克隆仓库** ```bash git clone https://gitee.com/YongHeng8/git-sync-tool.git cd git-sync-tool ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **运行程序** **Windows:** ```bash start_gui.bat # 或 python main.py ``` **Linux/Mac:** ```bash chmod +x start.sh ./start.sh # 或 python main.py ``` ### 首次使用配置 1. **填写配置信息** - 配置名称(如:gitee-work) - 目标平台(Gitee/GitHub) - 用户名和 Personal Access Token - 可选:选择组织 2. **扫描仓库** - 点击"选择目录"选择包含 Git 仓库的文件夹 - 点击"🔍 扫描"扫描所有仓库 - 勾选需要同步的仓库 3. **开始同步** - 点击"🚀 开始同步" - 查看右侧日志了解同步进度 ## 🔑 获取 Personal Access Token ### Gitee 1. 登录 [Gitee](https://gitee.com) → 设置 → 私人令牌 2. 点击"生成新令牌" 3. 勾选权限:`projects`(必需) 4. 复制生成的令牌 ### GitHub 1. 登录 [GitHub](https://github.com) → Settings → Developer settings → Personal access tokens → Tokens (classic) 2. 点击"Generate new token" 3. 勾选权限:`repo`(必需) 4. 复制生成的令牌 ## 📖 使用技巧 ### 定时同步 1. 勾选"启用定时同步" 2. 设置同步时间(小时和分钟) 3. 程序会在每天指定时间自动同步选中的仓库 4. 实时查看倒计时和同步日志 ### 保存扫描配置 1. 扫描完成后,点击"💾 保存扫描" 2. 输入配置名称(默认带时间戳) 3. 下次可以通过"📂 加载扫描"快速恢复 ### 选择源远程 1. 双击"源远程 (双击选择)"列 2. 从弹出的对话框中选择远程仓库 3. 同步时会从选中的远程拉取更新 ### 编辑描述 1. 双击"描述"列 2. 输入新的描述 3. 按 Enter 保存,按 Esc 取消 ## 📁 项目结构 ``` git-sync-tool/ ├── main.py # 主启动文件 ⭐ ├── build_tool.py # 构建工具(带进度显示)⭐ ├── optimize_and_compress.py # 优化和压缩工具 ├── build_exe_fixed.spec # PyInstaller 配置文件 ├── requirements.txt # 依赖列表 ├── start_gui.bat # Windows 启动脚本 ├── start.sh # Linux/Mac 启动脚本 ├── 发布到GitHub.bat # GitHub 发布辅助脚本 ├── RELEASE_NOTES.md # 版本发布说明 ├── 如何发布Release.md # 发布指南 ├── 发布总结.md # 发布总结 ├── src/ # 源代码目录 │ ├── gui_app_modern.py # 现代化 GUI 主程序 ⭐ │ ├── config.py # 配置管理 │ ├── git_manager.py # Git 操作 │ ├── platform_api.py # Gitee/GitHub API │ └── sync_manager.py # 同步管理 ├── .kiro/ # 配置存储目录(自动生成) │ ├── configs/ # 全局配置 │ └── scans/ # 扫描配置 └── dist/ # 构建输出目录 ├── Git仓库同步工具.exe # 可执行文件 └── 使用说明.txt # 使用说明 ``` ## 📦 打包为 EXE ### 使用构建工具(推荐) ```bash python build_tool.py ``` 构建工具特性: - ✅ 自动检查环境和依赖 - ✅ 显示构建进度和动画 - ✅ 自动生成使用说明 - ✅ 验证生成的 EXE 文件 ### 优化和压缩 如果生成的 EXE 文件过大,可以使用优化工具: ```bash python optimize_and_compress.py ``` 优化工具功能: - 使用 UPX 压缩 EXE(需要安装 UPX) - 创建 7z 压缩包(需要安装 7-Zip) - 创建 ZIP 压缩包 - 创建分卷压缩包(每卷 95 MB) 生成的文件在 `dist` 目录下。 ## 📋 系统要求 - **Python**: 3.8+ (从源码运行时需要) - **Git**: 已安装并配置 - **操作系统**: Windows 7+, Linux, macOS - **网络**: 需要访问 Gitee/GitHub API ## 🎯 使用场景 - 📤 将公司内部 Git 仓库同步到 Gitee - 🔄 将 GitHub 项目备份到 Gitee - 📦 批量管理多个 Git 仓库的同步 - ⏰ 定期自动备份本地仓库到云端 - 🏢 团队协作时同步多个项目 ## ⚠️ 注意事项 1. **Token 安全** - Token 具有仓库完全访问权限,请妥善保管 - 不要将配置文件分享给他人 - 定期更换 Token 以确保安全 2. **同步机制** - 同步流程:从源远程拉取 → 推送到目标平台 - 不会从目标平台拉取(避免循环同步) - 首次同步会自动创建远程仓库 3. **仓库状态** - 确保本地仓库已经初始化并有提交记录 - 同步前建议先手动测试一个仓库 - 定期检查同步日志确保操作成功 4. **配置文件** - 配置文件保存在 `.kiro` 目录 - Token 已加密存储 - 可以手动备份配置文件 ## 🔧 开发相关 ### 依赖项 ``` requests>=2.31.0 # HTTP 请求 GitPython>=3.1.40 # Git 操作 schedule>=1.2.0 # 定时任务 cryptography>=41.0.7 # 加密存储 pydantic>=2.5.2 # 数据验证 python-dotenv>=1.0.0 # 环境变量 pyinstaller>=6.10.0 # 打包工具 ``` ### 构建说明 详细的构建和发布说明请参考: - [如何发布Release.md](./如何发布Release.md) - Gitee/GitHub 发布指南 - [发布总结.md](./发布总结.md) - 完整的发布流程总结 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ### 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 MIT License - 详见 [LICENSE](./LICENSE) 文件 ## 📞 联系方式 - **Gitee**: https://gitee.com/YongHeng8/git-sync-tool - **Issues**: https://gitee.com/YongHeng8/git-sync-tool/issues ## 🎉 更新日志 ### v1.0.0 (2026-02-04) - 🎉 首个正式版本发布 - ✨ 完整的 Git 仓库同步功能 - ✨ 支持 Gitee 和 GitHub - ✨ 定时自动同步 - ✨ 配置管理和保存 - ✨ 现代化用户界面 - 🔐 Token 加密存储 - 📊 详细的同步日志 详细更新日志请查看 [RELEASE_NOTES.md](./RELEASE_NOTES.md) --- **如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!**