|
|
# Git上传大项目到educoder的解决方案
|
|
|
|
|
|
## 问题分析
|
|
|
您的项目包含以下大文件夹:
|
|
|
- `frontend/node_modules/` (通常几十MB到几百MB)
|
|
|
- `backend/__pycache__/` (Python缓存文件)
|
|
|
- `文档模板:软件需求规格说明书(1).docx` (可能较大)
|
|
|
|
|
|
## 解决方案
|
|
|
|
|
|
### 方案1:优化.gitignore + 分批上传
|
|
|
|
|
|
#### 步骤1:创建.gitignore文件
|
|
|
```bash
|
|
|
# 已创建.gitignore文件,排除不必要的文件
|
|
|
```
|
|
|
|
|
|
#### 步骤2:清理已跟踪的大文件
|
|
|
```bash
|
|
|
# 如果已经初始化了git,需要清理缓存
|
|
|
git rm -r --cached frontend/node_modules/
|
|
|
git rm -r --cached backend/__pycache__/
|
|
|
git rm --cached "文档模板:软件需求规格说明书(1).docx"
|
|
|
```
|
|
|
|
|
|
#### 步骤3:分批提交
|
|
|
```bash
|
|
|
# 第一次提交:核心代码
|
|
|
git add backend/app/ backend/main.py backend/requirements.txt
|
|
|
git commit -m "feat: 添加后端核心代码"
|
|
|
|
|
|
# 第二次提交:前端源码
|
|
|
git add frontend/src/ frontend/public/ frontend/package.json frontend/tsconfig.json
|
|
|
git commit -m "feat: 添加前端源码"
|
|
|
|
|
|
# 第三次提交:配置和文档
|
|
|
git add README.md DEPLOYMENT.md *.bat *.ps1
|
|
|
git commit -m "feat: 添加项目配置和文档"
|
|
|
```
|
|
|
|
|
|
### 方案2:使用Git LFS (推荐)
|
|
|
|
|
|
#### 步骤1:安装Git LFS
|
|
|
```bash
|
|
|
git lfs install
|
|
|
```
|
|
|
|
|
|
#### 步骤2:配置LFS跟踪大文件
|
|
|
```bash
|
|
|
# 跟踪大文档文件
|
|
|
git lfs track "*.docx"
|
|
|
git lfs track "*.pdf"
|
|
|
|
|
|
# 跟踪数据库文件
|
|
|
git lfs track "*.db"
|
|
|
git lfs track "*.sqlite"
|
|
|
```
|
|
|
|
|
|
#### 步骤3:正常提交
|
|
|
```bash
|
|
|
git add .gitattributes
|
|
|
git add .
|
|
|
git commit -m "feat: 完整项目代码"
|
|
|
git push origin main
|
|
|
```
|
|
|
|
|
|
### 方案3:压缩优化上传
|
|
|
|
|
|
#### 步骤1:创建最小化版本
|
|
|
```bash
|
|
|
# 创建临时目录
|
|
|
mkdir temp_upload
|
|
|
cd temp_upload
|
|
|
|
|
|
# 复制核心文件
|
|
|
cp -r ../backend/app .
|
|
|
cp ../backend/main.py .
|
|
|
cp ../backend/requirements.txt .
|
|
|
cp -r ../frontend/src .
|
|
|
cp ../frontend/package.json .
|
|
|
cp ../frontend/tsconfig.json .
|
|
|
cp ../README.md .
|
|
|
```
|
|
|
|
|
|
#### 步骤2:创建安装脚本
|
|
|
```bash
|
|
|
# 创建install_dependencies.sh
|
|
|
cat > install_dependencies.sh << 'EOF'
|
|
|
#!/bin/bash
|
|
|
echo "安装Python依赖..."
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
echo "安装Node.js依赖..."
|
|
|
cd frontend
|
|
|
npm install
|
|
|
cd ..
|
|
|
|
|
|
echo "项目依赖安装完成!"
|
|
|
EOF
|
|
|
```
|
|
|
|
|
|
### 方案4:使用Git子模块
|
|
|
|
|
|
#### 步骤1:分离前后端
|
|
|
```bash
|
|
|
# 将前端作为子模块
|
|
|
git submodule add <frontend-repo-url> frontend
|
|
|
```
|
|
|
|
|
|
## 推荐执行步骤
|
|
|
|
|
|
1. **立即执行**:
|
|
|
```bash
|
|
|
# 1. 初始化git(如果还没有)
|
|
|
git init
|
|
|
|
|
|
# 2. 添加.gitignore
|
|
|
git add .gitignore
|
|
|
git commit -m "feat: 添加.gitignore文件"
|
|
|
|
|
|
# 3. 清理大文件
|
|
|
git rm -r --cached frontend/node_modules/ 2>/dev/null || true
|
|
|
git rm -r --cached backend/__pycache__/ 2>/dev/null || true
|
|
|
|
|
|
# 4. 分批提交
|
|
|
git add backend/
|
|
|
git commit -m "feat: 后端代码"
|
|
|
|
|
|
git add frontend/src/ frontend/public/ frontend/package.json frontend/tsconfig.json
|
|
|
git commit -m "feat: 前端源码"
|
|
|
|
|
|
git add README.md DEPLOYMENT.md *.bat *.ps1
|
|
|
git commit -m "feat: 项目配置"
|
|
|
|
|
|
# 5. 推送到educoder
|
|
|
git remote add origin <educoder-repo-url>
|
|
|
git push -u origin main
|
|
|
```
|
|
|
|
|
|
2. **在educoder上创建README说明**:
|
|
|
```markdown
|
|
|
# 项目安装说明
|
|
|
|
|
|
## 环境要求
|
|
|
- Python 3.8+
|
|
|
- Node.js 14+
|
|
|
|
|
|
## 安装步骤
|
|
|
1. 克隆项目
|
|
|
2. 安装Python依赖:`pip install -r backend/requirements.txt`
|
|
|
3. 安装前端依赖:`cd frontend && npm install`
|
|
|
4. 运行项目:参考README.md中的启动说明
|
|
|
```
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
1. **node_modules** 不应该提交到git,应该通过 `npm install` 重新安装
|
|
|
2. **__pycache__** 是Python缓存,应该被忽略
|
|
|
3. **大文档文件** 可以考虑使用Git LFS或放在云存储
|
|
|
4. **数据库文件** 如果包含敏感数据,应该使用环境变量配置
|
|
|
|
|
|
## 最终建议
|
|
|
|
|
|
推荐使用**方案1(优化.gitignore + 分批上传)**,这是最简单有效的方案。
|