Skip to content

File nào vào git, D1, R2 ​

Chủ dự án 18.10.2026: "Cần có quy tắc nào đó, để file nào được đưa lên GitHub, dạng nào ko được đưa lên GitHub mà được đưa vào đâu đó khác như D1 hay R2". File nhị phân đã vào lịch sử git thì không gỡ được nếu không viết lại lịch sử, và repo đang có 162 MB file theo dõi, phần lớn là media, seed SQL và nội dung (đo dung lượng repo).

DạngNơi lưuGhi chú
Code, config, test, migration D1 (schema)Git
Docs (PRD, SDD, quyết định, ảnh chụp minh hoạ nhỏ)Git, apps/<app>/docs/ (chung: docs/)Docs cạnh code
Prototype UI (HTML/React nháp, link Artifact, link Figma)Git, apps/<app>/design/prototypes/Không vào build
Asset app thật sự dùng, đã tối ưuGit, apps/<app>/public/ hoặc src/assets/Ảnh ≤ 300 KB (webp), 3D .glb ≤ 500 KB, âm thanh UI ≤ 200 KB
Nội dung learner đọc (bài, câu hỏi, sách, bài SEO, Grammar)D1, nạp qua workflow seed-dataNguồn soạn (md/json) và seed SQL ≤ 1 MB ở git, vì seed-data đọc file từ repo
Media nặng và file nguồn (video, audio bài học, .blend, PSD, render, ảnh gốc, PDF lớn)R2 nemo12-content/<app>/...Danh mục ở apps/<app>/design/assets.json: khoá R2, nguồn, giấy phép, ghi công
Dữ liệu người dùng (bài làm, hồ sơ, đơn hàng)D1 production, chỉ qua APIKhông bao giờ vào git, kể cả bản xuất
Bản sinh (dist, seed SQL lớn, index, fixture sinh)Không lưu: sinh lại khi build hay deploy.generated/, .gitignore
Bí mật (token, khoá)GitHub Secrets / Cloudflare secrets, máy: .dev.vars
Log, ảnh chụp tạm, báo cáo một lầnKhông lưu (scratchpad, tmp-*)

Máy chặn: scripts/check-storage.mjs (nhóm check:code, chạy ở pre-commit và CI) từ chối mọi file MỚI thêm thuộc định dạng nguồn/media (.psd .blend .fbx .mp4 .mov .wav .zip .sqlite…), ảnh quá 300 KB, .glb quá 500 KB, và mọi file quá 1 MB. File đã có từ trước không bị xét; kế hoạch trong docs/ops/repo-size.md đưa chúng ra dần. Ngoại lệ thật thì thêm đường dẫn vào scripts/storage-allow.json kèm lý do.