217 lines
6.0 KiB
Markdown
217 lines
6.0 KiB
Markdown
# 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 |