# 自动提交 **Repository Path**: AIStaff/gitAuto ## Basic Information - **Project Name**: 自动提交 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-06 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git自动提交工具 一个功能强大的Git自动提交工具,支持文件监控、定时提交和自动推送功能。 ## 功能特性 - 🔍 **文件监控**: 实时监控文件变化,自动触发提交 - ⏰ **定时提交**: 按设定时间间隔自动提交 - 🚀 **自动推送**: 提交后自动推送到远程仓库 - ⚙️ **可配置**: 支持自定义监控文件类型、排除模式等 - 📝 **日志记录**: 详细的操作日志和错误记录 - 🎨 **彩色输出**: 友好的命令行界面 ## 项目结构 ``` autoPython/ ├── config/ │ └── git_auto_config.json # 配置文件 ├── logs/ # 日志目录 ├── git_auto_commit.py # 主程序 ├── start.bat # Windows启动脚本 ├── requirements.txt # 依赖包 └── README.md # 项目说明 ``` ####使用过程 ## 安装依赖 ```bash pip install -r requirements.txt ``` 如果提示内容: [notice] A new release of pip is available: 24.0 -> 25.2 [notice] To update, run: python.exe -m pip install --upgrade pip ```bash #运行 python.exe -m pip install --upgrade pip ``` ModuleNotFoundError: No module named 'schedule' ```bash # 运行 pip install schedule ``` ### 1. 使用Windows启动脚本 #### 基础版启动脚本(推荐) ```bash # 双击运行或在命令行执行 start.bat ``` 1 #### 增强版启动脚本 ```bash # 提供更详细的菜单和说明 start_enhanced.bat ``` #### 简化版启动脚本 ```bash # 无pause提示,程序结束后直接退出 start_simple.bat ``` ### 2. 直接运行Python脚本 ```bash # 文件监控模式(默认) python git_auto_commit.py monitor # 定时提交模式 python git_auto_commit.py schedule # 单次提交模式 python git_auto_commit.py once # 显示帮助信息 python git_auto_commit.py help ``` ### 3. 运行模式说明 #### 监控模式 (monitor) - 实时监控文件变化 - 检测到文件修改时自动提交 - 适合开发过程中使用 #### 定时模式 (schedule) - 按设定时间间隔自动提交 - 适合定期备份或同步 - 默认间隔5分钟 #### 单次执行 (once) - 执行一次完整的提交流程 - 适合手动触发或测试 ## 配置文件 配置文件位于 `config/git_auto_config.json`: ```json { "auto_add": true, "auto_commit": true, "auto_push": true, "commit_message_template": "Auto commit: {timestamp} - {files_count} files changed", "commit_interval": 300, #检测文件类型 "monitor_extensions": [ ".py", ".js", ".ts", ".html", ".css", ".json", ".md", ".txt" ], #排除文件类型或者目录 "exclude_patterns": [ "__pycache__", ".git", "node_modules", "*.log", "*.tmp" ], "branch": "main", "remote": "origin", "log_level": "INFO", "log_file": "logs/git_auto_commit.log" } ``` ### 配置项说明 | 配置项 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | `auto_add` | boolean | true | 是否自动添加文件到暂存区 | | `auto_commit` | boolean | true | 是否自动提交更改 | | `auto_push` | boolean | true | 是否自动推送到远程仓库 | | `commit_message_template` | string | "Auto commit: {timestamp} - {files_count} files changed" | 提交消息模板 | | `commit_interval` | integer | 300 | 定时提交间隔(秒) | | `monitor_extensions` | array | [".py", ".js", ".ts", ".html", ".css", ".json", ".md", ".txt"] | 监控的文件扩展名 | | `exclude_patterns` | array | ["__pycache__", ".git", "node_modules", "*.log", "*.tmp"] | 排除的文件/目录模式 | | `branch` | string | "main" | 目标分支 | | `remote` | string | "origin" | 远程仓库名称 | | `log_level` | string | "INFO" | 日志级别 | | `log_file` | string | "logs/git_auto_commit.log" | 日志文件路径 | ## 启动脚本说明 ### start.bat(基础版) - 完整的错误检查 - 友好的用户提示 - 程序结束后显示提示 ### start_enhanced.bat(增强版) - 详细的菜单说明 - 更好的用户体验 - 支持返回主菜单 ### start_simple.bat(简化版) - 无pause提示 - 程序结束后直接退出 - 适合自动化使用 ## 使用示例 ### 示例1: 开发环境监控 ```bash # 在项目目录下启动监控 cd /path/to/your/project python git_auto_commit.py monitor ``` ### 示例2: 定时备份 ```bash # 修改配置文件中的 commit_interval 为 3600 (1小时) # 然后启动定时模式 python git_auto_commit.py schedule ``` ### 示例3: 自定义配置 1. 编辑 `config/git_auto_config.json`: ```json { "monitor_extensions": [".py", ".js"], "exclude_patterns": ["__pycache__", ".git", "*.log"], "commit_message_template": "Backup: {timestamp}", "commit_interval": 1800 } ``` 2. 启动程序: ```bash python git_auto_commit.py schedule ``` ## 日志文件 程序会在 `logs/` 目录下生成日志文件: - `git_auto_commit.log`: 详细的操作日志 ## 注意事项 1. **Git仓库**: 确保在Git仓库目录下运行程序 2. **权限**: 确保有足够的权限进行Git操作 3. **网络**: 推送功能需要网络连接 4. **防抖**: 监控模式有5秒防抖机制,避免频繁提交 5. **中断**: 使用 `Ctrl+C` 停止程序 ## 故障排除 ### 常见问题 1. **"Press any key to continue..."提示** - 使用 `start_simple.bat` 避免此提示 - 或修改启动脚本移除最后的pause命令 2. **"配置文件不存在"** - 确保 `config/git_auto_config.json` 文件存在 - 检查文件路径是否正确 3. **"当前目录不是Git仓库"** - 确保在Git仓库根目录下运行程序 - 检查 `.git` 目录是否存在 4. **推送失败** - 检查网络连接 - 确认远程仓库配置正确 - 检查是否有推送权限 5. **文件监控不工作** - 检查文件扩展名是否在监控列表中 - 确认文件路径不在排除模式中 ### 调试模式 可以通过修改配置文件中的 `log_level` 来获取更详细的信息: ```json { "log_level": "DEBUG" } ``` ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request!