You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
code-analysis/git_upload_guide.md

165 lines
3.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 + 分批上传)**,这是最简单有效的方案。