# .gitignore 规则说明 ## 📋 概述 本项目的 `.gitignore` 文件已经过优化,包含了完整的忽略规则,确保敏感文件和不必要的文件不会被提交到版本控制中。 ## 🔧 主要修复 ### 1. **数据库文件忽略** ✅ **问题**: 原来缺少 `*.db` 文件的忽略规则 **解决**: 添加了完整的数据库文件忽略规则 ```gitignore # Database files *.db *.sqlite *.sqlite3 db.sqlite3 ``` ### 2. **静态资源例外** ✅ **问题**: `lib/` 规则会忽略 `static/lib/` 中的本地 CDN 资源 **解决**: 添加例外规则,允许 `static/lib/` 被版本控制 ```gitignore # Python lib directories (but not static/lib) lib/ !static/lib/ ``` ## 📂 完整规则分类 ### Python 相关 ```gitignore __pycache__ *.so .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ MANIFEST *.manifest *.spec __pypackages__/ .venv venv/ ENV/ env.bak/ venv.bak/ ``` ### 数据库文件 ```gitignore *.db *.sqlite *.sqlite3 db.sqlite3 ``` ### 日志和缓存 ```gitignore *.log .cache ``` ### 临时文件 ```gitignore *.tmp *.temp temp/ tmp/ ``` ### 操作系统生成的文件 ```gitignore .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db ``` ### IDE 和编辑器文件 ```gitignore .vscode/ .idea/ *.swp *.swo *~ ``` ### 环境配置文件 ```gitignore .env .env.local .env.*.local local_settings.py ``` ### Node.js 相关 ```gitignore *node_modules/* ``` ### 静态资源例外 ```gitignore !static/lib/ ``` ## 🎯 特殊说明 ### 数据库文件保护 - **目的**: 防止敏感的用户数据和配置信息被意外提交 - **影响**: `xianyu_data.db` 等数据库文件不会被 Git 跟踪 - **好处**: 保护用户隐私,避免数据泄露 ### 静态资源管理 - **目的**: 允许本地 CDN 资源被版本控制,提升中国大陆访问速度 - **规则**: `lib/` 被忽略,但 `static/lib/` 不被忽略 - **包含**: Bootstrap CSS/JS、Bootstrap Icons 等本地资源 ### 环境配置保护 - **目的**: 防止敏感的环境变量和配置被提交 - **影响**: `.env` 文件和本地设置不会被跟踪 - **好处**: 保护 API 密钥、数据库连接等敏感信息 ## 🧪 验证方法 可以运行以下测试脚本验证规则是否正确: ```bash # 测试数据库文件忽略 python test_gitignore_db.py # 测试静态资源例外 python test_gitignore.py ``` ## 📊 当前项目状态 ### 被忽略的文件 - `xianyu_data.db` (139,264 bytes) - 主数据库 - `data/xianyu_data.db` (106,496 bytes) - 数据目录中的数据库 - 各种临时文件、日志文件、IDE 配置等 ### 不被忽略的重要文件 - `static/lib/` 目录下的所有本地 CDN 资源 (702 KB) - 源代码文件 (`.py`, `.html`, `.js` 等) - 配置模板文件 (`.yml.example`, `.env.example` 等) - 文档文件 (`.md` 等) ## 🎉 优势总结 1. **数据安全**: 数据库文件不会被意外提交,保护用户数据 2. **配置安全**: 环境变量和敏感配置得到保护 3. **仓库整洁**: 临时文件、缓存文件等不会污染仓库 4. **本地资源**: CDN 资源可以正常版本控制,提升访问速度 5. **跨平台**: 支持 Windows、macOS、Linux 的常见忽略文件 6. **IDE 友好**: 支持 VSCode、IntelliJ IDEA 等常见 IDE 现在的 `.gitignore` 配置既保证了项目的安全性,又确保了必要文件的正常版本控制!