feat: implement ERP AI Assistant Phase 1
Backend (FastAPI + SQLAlchemy + Claude API + RAG): - Config management with Pydantic v2 - Database engine with connection pooling and SQL injection prevention - AI engine with Claude API integration (support custom base URL) - RAG engine with ChromaDB and sentence-transformers - Requirement analysis service - Config generation service - Executor engine with SQL validation - REST API endpoints: /analyze, /generate, /execute Frontend (Vue 3 + Element Plus + Pinia): - Complete 3-step workflow: analyze → generate → execute - Step indicator with progress visualization - Analysis result display with field table - SQL preview with monospace font - Execute confirmation dialog with safety warning - Execution result display - State management with Pinia - API service integration Security: - SQL injection prevention with parameterized queries - Dangerous SQL operation blocking - Database password URL encoding - Transaction auto-rollback - Pydantic config validation Features: - Natural language requirement analysis - Automated SQL configuration generation - Safe execution with human review - LAN access support - Custom Claude API endpoint support Documentation: - README with quick start guide - Quick start guide - LAN access configuration - Dependency fixes guide - Claude API configuration - Git operation guide - Implementation report Dependencies fixed: - numpy<2.0.0 for chromadb compatibility - sentence-transformers==2.7.0 for huggingface_hub compatibility Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
266
docs/GIT_GUIDE.md
Normal file
266
docs/GIT_GUIDE.md
Normal file
@@ -0,0 +1,266 @@
|
||||
# Git 操作指南 - 撤回和重新添加文件
|
||||
|
||||
## ✅ 已完成的操作
|
||||
|
||||
### 1. 撤回暂存区
|
||||
|
||||
已执行 `git reset` 命令,清空了暂存区的所有文件。
|
||||
|
||||
## 📝 修改的 .gitignore
|
||||
|
||||
已在 `.gitignore` 中添加以下规则:
|
||||
|
||||
```gitignore
|
||||
# Project specific - 忽略知识库文档
|
||||
backend/knowledge_base/documents/*.docx
|
||||
backend/knowledge_base/documents/*.xlsx
|
||||
backend/knowledge_base/documents/*.pdf
|
||||
backend/knowledge_base/documents/*.pptx
|
||||
backend/knowledge_base/documents/*.vsdx
|
||||
backend/knowledge_base/documents/*.xls
|
||||
|
||||
# Temporary files - 忽略临时文件
|
||||
*.tmp
|
||||
*.temp
|
||||
*.bak
|
||||
*.swp
|
||||
*~
|
||||
|
||||
# Archives - 忽略压缩包
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
*.7z
|
||||
```
|
||||
|
||||
## 🔍 下一步操作
|
||||
|
||||
### 1. 查看将要提交的文件
|
||||
|
||||
先查看哪些文件会被添加:
|
||||
|
||||
```bash
|
||||
# 查看所有未跟踪的文件
|
||||
git status
|
||||
|
||||
# 或者更详细地查看
|
||||
git status --short
|
||||
```
|
||||
|
||||
### 2. 重新添加文件
|
||||
|
||||
确认文件列表无误后:
|
||||
|
||||
```bash
|
||||
# 方式 1: 添加所有文件(推荐)
|
||||
git add .
|
||||
|
||||
# 方式 2: 逐个添加文件类型(更安全)
|
||||
git add backend/app/
|
||||
git add backend/tests/
|
||||
git add backend/*.txt backend/*.ini
|
||||
git add backend/.env.example
|
||||
git add frontend/src/
|
||||
git add frontend/*.json frontend/*.js frontend/*.html
|
||||
git add *.md .gitignore
|
||||
```
|
||||
|
||||
### 3. 检查暂存区
|
||||
|
||||
添加后再次检查:
|
||||
|
||||
```bash
|
||||
# 查看暂存区状态
|
||||
git status
|
||||
|
||||
# 查看暂存区的文件列表
|
||||
git diff --cached --name-only
|
||||
|
||||
# 查看具体改动
|
||||
git diff --cached
|
||||
```
|
||||
|
||||
### 4. 提交
|
||||
|
||||
确认无误后提交:
|
||||
|
||||
```bash
|
||||
git commit -m "feat: implement ERP AI Assistant Phase 1
|
||||
|
||||
- Backend: FastAPI + SQLAlchemy + Claude API + RAG
|
||||
- Frontend: Vue 3 + Element Plus + Pinia
|
||||
- Features: requirement analysis, config generation, safe execution
|
||||
- Security: SQL injection prevention, parameterized queries
|
||||
- Support: LAN access, custom API endpoint"
|
||||
```
|
||||
|
||||
## 🎯 建议忽略的文件
|
||||
|
||||
如果发现还有其他不需要提交的文件,可以在 `.gitignore` 中添加:
|
||||
|
||||
### 常见需要忽略的文件类型
|
||||
|
||||
```gitignore
|
||||
# 大文件
|
||||
*.dmg
|
||||
*.iso
|
||||
*.img
|
||||
|
||||
# 编译产物
|
||||
*.class
|
||||
*.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# 包文件
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
|
||||
# 日志文件
|
||||
logs/
|
||||
*.log
|
||||
|
||||
# 数据文件
|
||||
*.csv
|
||||
*.dat
|
||||
*.out
|
||||
|
||||
# 模型文件(如果很大的话)
|
||||
*.model
|
||||
*.pkl
|
||||
*.h5
|
||||
*.pt
|
||||
*.pth
|
||||
```
|
||||
|
||||
### 项目特定的忽略规则
|
||||
|
||||
```gitignore
|
||||
# 知识库向量数据库(可能很大)
|
||||
backend/knowledge_base/chroma_db/
|
||||
|
||||
# 用户上传的文档
|
||||
backend/knowledge_base/documents/
|
||||
|
||||
# 测试覆盖率报告
|
||||
htmlcov/
|
||||
.coverage
|
||||
|
||||
# 本地配置
|
||||
.env.local
|
||||
.env.*.local
|
||||
```
|
||||
|
||||
## 🔧 Git 常用命令
|
||||
|
||||
### 撤回操作
|
||||
|
||||
```bash
|
||||
# 撤回所有已 add 的文件
|
||||
git reset
|
||||
|
||||
# 撤回特定文件
|
||||
git reset <file>
|
||||
|
||||
# 撤回最近一次 commit(保留修改)
|
||||
git reset --soft HEAD~1
|
||||
|
||||
# 撤回最近一次 commit(丢弃修改,慎用)
|
||||
git reset --hard HEAD~1
|
||||
```
|
||||
|
||||
### 查看状态
|
||||
|
||||
```bash
|
||||
# 查看当前状态
|
||||
git status
|
||||
|
||||
# 查看简洁状态
|
||||
git status -s
|
||||
|
||||
# 查看分支信息
|
||||
git branch -a
|
||||
|
||||
# 查看提交历史
|
||||
git log --oneline --graph
|
||||
```
|
||||
|
||||
### 删除已跟踪的文件
|
||||
|
||||
如果某个文件已经被 git 跟踪,想要从版本控制中移除:
|
||||
|
||||
```bash
|
||||
# 从 Git 中移除但保留本地文件
|
||||
git rm --cached <file>
|
||||
|
||||
# 从 Git 和本地都删除
|
||||
git rm <file>
|
||||
|
||||
# 从 Git 中移除整个文件夹
|
||||
git rm -r --cached <directory>
|
||||
```
|
||||
|
||||
## 📋 快速检查清单
|
||||
|
||||
提交前检查:
|
||||
|
||||
- [ ] 是否包含 `.env` 文件?(不应包含)
|
||||
- [ ] 是否包含 `venv/` 或 `node_modules/`?(不应包含)
|
||||
- [ ] 是否包含大文件?(不应包含)
|
||||
- [ ] 是否包含临时文件?(不应包含)
|
||||
- [ ] 是否包含日志文件?(不应包含)
|
||||
- [ ] 是否包含个人配置?(不应包含)
|
||||
|
||||
## 🚨 常见问题
|
||||
|
||||
### 问题 1: 文件已经在 .gitignore 中,但仍然被跟踪
|
||||
|
||||
**原因**: 文件在添加 .gitignore 规则之前就已经被 git 跟踪了
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 从 Git 中移除但保留本地文件
|
||||
git rm --cached <file>
|
||||
|
||||
# 然后提交
|
||||
git commit -m "chore: remove tracked file from version control"
|
||||
```
|
||||
|
||||
### 问题 2: 添加了不该添加的文件
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 撤回添加
|
||||
git reset
|
||||
|
||||
# 2. 更新 .gitignore
|
||||
|
||||
# 3. 重新添加
|
||||
git add .
|
||||
```
|
||||
|
||||
### 问题 3: 如何只提交特定文件
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 只提交代码文件
|
||||
git add *.py *.vue *.js
|
||||
|
||||
# 只提交特定目录
|
||||
git add backend/app/ frontend/src/
|
||||
|
||||
# 交互式添加
|
||||
git add -p
|
||||
```
|
||||
|
||||
## 📚 相关资源
|
||||
|
||||
- [Git 官方文档](https://git-scm.com/doc)
|
||||
- [.gitignore 模板集合](https://github.com/github/gitignore)
|
||||
- [Git Flow 工作流](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)
|
||||
|
||||
---
|
||||
|
||||
**更新时间**: 2026-03-21
|
||||
Reference in New Issue
Block a user