734个CAD文件如何管理:Keychron-Keyboards-Hardware-Design的大文件仓库架构(Git LFS+自动库存脚本)
【免费下载链接】Keychron-Keyboards-Hardware-DesignIndustrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms.项目地址: https://gitcode.com/gh_mirrors/ke/Keychron-Keyboards-Hardware-Design
Keychron-Keyboards-Hardware-Design 是一个收录了734 个 CAD 设计文件的开源硬件仓库,涵盖 100 多款机械键盘与鼠标的 STEP、DXF、DWG、PDF 生产级设计图纸。面对如此庞大的工程文件,项目用Git LFS 管理大文件、用目录分层结构组织模型、再用自动库存脚本保证文档永不失准——这套架构非常值得做大文件仓库的朋友借鉴。
一、为什么大文件仓库必须用 Git LFS
普通文本文件交给 Git 毫无压力,但一个键盘外壳的 STEP 模型动辄几十 MB。如果把二进制大文件直接塞进 Git,仓库会迅速膨胀、克隆变慢、历史无法瘦身。Keychron 的解法很简单:在根目录的 .gitattributes 中声明 13 类扩展名一律走 LFS 通道:
*.stp filter=lfs diff=lfs merge=lfs -text *.step filter=lfs diff=lfs merge=lfs -text *.dwg filter=lfs diff=lfs merge=lfs -text *.dxf filter=lfs diff=lfs merge=lfs -text *.pdf filter=lfs diff=lfs merge=lfs -text除 CAD 格式外,.zip、.jpg、.png、.webp等图片压缩包也被纳入 LFS。这样 Git 本体只保存指向真实文件的"指针",大文件实际存储在 LFS 服务端,克隆速度保持在友好范围内。
👉 本地使用时只需两步:
git lfs install git lfs pull拉取后,所有 CAD 文件会从"指针"自动还原为真实的工程文件。
二、三层目录结构:系列 → 型号 → 文件
打开仓库,你会发现文件按清晰的三层结构组织(完整目录说明见 README.md):
仓库根目录 ├── Q-Series/ ← 第一层:28 个产品系列 │ ├── Q1/ ← 第二层:141 个型号目录 │ │ ├── README.md ← 每个型号自带说明页 │ │ ├── 外壳.stp ← 第三层:734 个数据文件 │ │ └── 面板.dxf ├── K-Max-Series/ ├── Mice/ ← 鼠标系列 └── Keycap Profiles/ ← 键帽高度参考- 系列目录:如 K-Max-Series/、Q-HE-Series/,共 28 个,覆盖键盘、鼠标、Hall Effect、8K 无线等全产品线
- 型号目录:如 K-Max-Series/K8 Max/,每个型号配一个 README 说明文件清单与下载入口
- 数据文件:STEP(3D 实体)、DXF(2D 面板轮廓)、DWG(工程图)、PDF(参考图纸)
按系列与型号组织排列的 Keychron CAD 文件布局
配套文档也齐全:docs/file-format-guide.md 教你用 Fusion 360、FreeCAD 等打开各类格式,docs/getting-started.md 给出新手上手路径。
三、自动库存脚本:一份文档自动跟上文件变化
仓库文件频繁增删,README 里的数字很容易"过期"。Keychron 用 docs/scripts/repo_inventory.py 这个 Python 脚本解决,它提供三个子命令:
| 命令 | 作用 | 典型场景 |
|---|---|---|
generate | 扫描文件系统,生成 Markdown 或 JSON 库存 | 重建 docs/repo-inventory.md |
validate | 核对 README 中的徽章数、总型号数、鼠标系列数是否与文件系统一致 | CI 自动校验 |
count | 输出当前型号数量 | 更新徽章 |
核心逻辑在 collect_inventory() 函数:递归统计每个系列的型号数与文件数(当前结果为141 个型号目录、734 个数据文件),并逐型号生成清单,包含路径、文件数、扩展名统计和 README 是否存在,最终渲染进 docs/repo-inventory.md。
四、CI 双工作流:让数字永远不撒谎
脚本只是基础,真正让架构"自动"起来的是两条 CI 工作流:
库存校验.github/workflows/validate-inventory.yml 每次 PR 或推送到 main 分支时,先运行
validate核对 README 计数,再执行generate并与仓库中的docs/repo-inventory.md做diff——如果文档没跟上文件变化,CI 直接红灯。这保证了库存文档 100% 反映真实文件系统。徽章更新.github/workflows/update-badge.yml 推送 main 后自动统计设备型号数(当前为 165 款),写入 .github/badges/model-count.json,README 顶部的 "models uploaded" 徽章由此动态保持最新,无需人工维护。
五、.gitignore:挡住 CAD 软件的"垃圾文件"
大文件仓库还有一个隐形杀手——CAD 软件产生的临时文件。.gitignore 针对性地屏蔽了 Fusion 360(*.f3d.bak)、SolidWorks(~*.sldprt)、FreeCAD(*.FCStd1)的缓存与自动备份,以及系统杂项,确保仓库里只有干净的设计文件。

总结:可复用的大文件仓库三件套
🧰 Keychron-Keyboards-Hardware-Design 的管理思路可以浓缩为三步:
.gitattributes+ Git LFS:13 类二进制大文件全部外置存储,仓库本体轻量- 系列/型号/文件三层目录:734 个文件各归其位,每个型号自带 README 说明书
- 脚本 + CI 闭环:
repo_inventory.py生成库存,工作流自动校验并更新徽章,文档与文件永不同步漂移
这套架构对个人管理 CAD 图纸、团队协作工程文件都有很强的参考价值。上手前建议先阅读 docs/getting-started.md 和 docs/repo-inventory.md,完整了解 734 个文件的分布。
【免费下载链接】Keychron-Keyboards-Hardware-DesignIndustrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms.项目地址: https://gitcode.com/gh_mirrors/ke/Keychron-Keyboards-Hardware-Design
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考