# Git文件上传工具 一个基于PHP的Git文件上传工具,支持JS和CSS分离,文件上传无限制。 ## 功能特点 - ✅ **文件上传无限制**:支持任意大小和数量的文件上传 - ✅ **Git集成**:完整的Git操作支持(添加、提交、推送、状态查看) - ✅ **分支管理**:支持创建、删除、切换分支 - ✅ **远程仓库配置**:支持添加和管理多个远程仓库 - ✅ **前后端分离**:独立的CSS和JavaScript文件 - ✅ **拖拽上传**:支持拖拽文件上传 - ✅ **文件管理**:可视化的文件列表和选择 - ✅ **实时状态**:Git仓库状态实时显示 - ✅ **响应式设计**:适配移动端和桌面端 ## 文件结构 ``` git/ ├── index.php # 主文件(包含PHP后端逻辑和HTML结构) ├── css/ │ └── style.css # 样式文件 ├── js/ │ └── main.js # JavaScript交互逻辑 ├── test.php # 测试文件 └── uploads/ # 上传文件存储目录(自动生成) ``` ## 安装要求 - PHP 7.0 或更高版本 - Git 已安装并配置 - Web服务器(Apache/Nginx等) - 足够的磁盘空间 ## 安装步骤 1. **上传文件到Web服务器** ```bash # 将整个 git 目录上传到Web服务器目录 # 例如:/var/www/html/git/ ``` 2. **设置目录权限** ```bash chmod 755 /var/www/html/git/ chmod 777 /var/www/html/git/uploads/ ``` 3. **访问工具** ``` http://your-domain.com/git/ ``` ## 使用方法 ### 1. 文件上传 - **拖拽上传**:将文件拖拽到上传区域 - **点击上传**:点击上传区域选择文件 - **批量上传**:支持同时选择多个文件 ### 2. 分支管理 - **查看分支**:分支列表会自动加载,显示当前分支和其他分支 - **创建新分支**: 1. 在"新分支名称"输入框中输入分支名称 2. 点击"创建分支"按钮 3. 新分支将基于当前分支创建 - **切换分支**: 1. 在"当前分支"下拉框中选择目标分支 2. 点击"切换分支"按钮 3. 工具会自动切换到选中的分支 - **删除分支**: 1. 在"当前分支"下拉框中选择要删除的分支 2. 点击"删除分支"按钮 3. 确认删除操作(如果分支未合并,可选择强制删除) - **刷新分支**:点击"刷新分支"按钮更新分支列表 ### 3. 远程仓库配置 - **添加远程仓库**: 1. 在"远程仓库名称"输入框中输入名称(如:origin) 2. 在"仓库地址"输入框中输入远程仓库URL(如:https://github.com/username/repo.git) 3. 点击"添加远程仓库"按钮 - **查看远程仓库**:点击"查看远程仓库"按钮查看已配置的远程仓库列表 ### 4. Git操作 - **添加到暂存区**:选择文件后点击"添加到暂存区" - **提交更改**:输入提交信息后点击"提交更改" - **推送到远程**: 1. 确保已配置远程仓库 2. 选择要推送的分支(在分支管理区域) 3. 在"远程仓库名称"输入框中输入要推送的远程仓库名称 4. 点击"推送到远程"按钮 - **查看状态**:点击"查看状态"查看Git状态 - **查看日志**:点击"查看日志"查看提交历史 ### 5. 文件管理 - **刷新列表**:点击"刷新文件列表"更新文件列表 - **选择文件**:勾选需要Git管理的文件 - **全选/取消**:快速选择或取消所有文件 ## 配置说明 ### PHP配置 工具会自动配置以下PHP设置: ```php ini_set('upload_max_filesize', '0'); // 无上传大小限制 ini_set('post_max_size', '0'); // 无POST大小限制 ini_set('max_execution_time', '0'); // 无执行时间限制 ini_set('memory_limit', '-1'); // 无内存限制 ``` ### Git配置 确保Web服务器用户有权限执行Git命令: ```bash # 检查Git是否可用 sudo -u www-data git --version # 如果需要,配置Git用户信息 sudo -u www-data git config --global user.name "Web Server" sudo -u www-data git config --global user.email "web@example.com" ``` ## 安全建议 1. **访问控制**:建议添加密码保护或IP限制 2. **文件类型限制**:根据需要限制上传文件类型 3. **定期清理**:定期清理上传目录 4. **备份重要数据**:重要文件请做好备份 ## 故障排除 ### 常见问题 1. **文件上传失败** - 检查 `uploads/` 目录权限 - 确认PHP配置允许大文件上传 - 查看Web服务器错误日志 2. **Git操作失败** - 确认Git已安装 - 检查Web服务器用户对Git的访问权限 - 确认Git仓库已初始化 3. **分支管理问题** - 无法删除当前分支,请先切换到其他分支 - 分支未合并时删除需要强制删除 - 分支名称不能包含特殊字符 4. **远程仓库配置问题** - 确保远程仓库URL格式正确 - 检查网络连接是否正常 - 确认有权限访问远程仓库 - 如需要认证,请配置Git凭据 5. **推送失败** - 确认远程仓库已正确添加 - 检查是否有冲突需要解决 - 确认有推送权限 - 确认选择了正确的分支进行推送 6. **界面显示异常** - 检查CSS文件是否正确加载 - 确认JavaScript文件无错误 - 清除浏览器缓存 ### 运行测试 访问测试文件检查配置: ``` http://your-domain.com/git/test.php ``` ## 更新日志 ### v1.2.0 (2024-01-15) - 添加分支管理功能 - 支持创建、删除、切换分支 - 支持分支选择和推送 - 优化分支操作的用户体验 ### v1.1.0 (2024-01-15) - 添加远程仓库配置功能 - 支持添加和管理远程仓库 - 支持推送到指定远程仓库 - 优化推送操作的用户体验 ### v1.0.0 (2024-01-15) - 初始版本发布 - 支持文件上传和Git操作 - 实现前后端分离 - 添加拖拽上传功能 ## 许可证 MIT License - 详见LICENSE文件 ## 作者 Git文件上传工具开发团队 ## 支持 如有问题,请通过以下方式联系: - 邮箱:support@example.com - 项目主页:https://github.com/your-repo/git-uploader