图纸协同需用Git裸仓库+标准化路径+元数据绑定,禁用共享文件夹;须配.gitignore过滤临时文件,VERSION文件自动打tag,底图只读+引用隔离,Git LFS需验证指针与文件同步。
图纸模型工作区无法协同,本质是没把设计文件当代码管——得用 git + 标准化路径 + 轻量元数据绑定,而不是靠“共享文件夹”或“打包发邮箱”。
Git 为什么必须用裸仓库(bare repo)管理图纸目录
直接 git init 在设计师本地图纸文件夹里?会出事。CAD/BIM 工具常自动生成临时文件(如 .~lock、Thumbs.db),Git 跟踪后拉取时权限错乱、大文件卡死、合并冲突根本没法解。
- 服务端只存
git clone --bare出来的裸仓库,不放任何图纸文件,只存 Git 对象 - 每个设计师本地用
git worktree挂载不同分支到独立路径(比如model_v2.1、model_review),避免误操作污染主工作区 - 必须配
.gitignore:明确过滤*.dwl、*.sv$、Cache/、Temp/等工程软件缓存目录
图纸版本号怎么和 Git tag 对齐才不翻车
手动打 git tag v2.3.1?没人记得起上次 tag 是啥,更别说关联 Revit 项目的 ProjectNumber 或 AutoCAD 的 FIELD 变量。版本漂移就从这里开始。
- 所有图纸根目录下放一个
VERSION纯文本文件,内容仅一行:v2.3.1-20240521(含日期,防重名) - CI 流水线(比如 GitHub Actions)监听
push到main分支时,自动读取该文件,执行git tag -a $(cat VERSION) -m "release"并git push origin --tags - 前端看图工具(如 Autodesk BIM 360 或自建轻量查看器)通过读取当前 commit 对应的
VERSION文件,动态显示右上角版本水印
多人同时改同一张底图(base.dwg / base.rvt)怎么避免覆盖
不是靠“谁先提交谁赢”,而是靠分层锁定 + 引用隔离。底图一旦被改,所有引用它的子图都可能失效。
- 底图文件(如
base.rvt)设为只读,修改必须走git checkout -b feat/base-update-202405→ 修改 → PR 合并流程 - 子图(如
arch_floor1.rvt)用相对路径引用底图,且在项目设置中勾选Worksharing > Relinquish on Close,关文件自动释放锁 - 禁止用“外部参照绑定(XREF bind)”或“导入(Import)”,全部改用“附着(XREF attach)”或“链接(Link)”,确保底图更新后子图一键刷新
Git LFS 处理大模型文件时最常漏掉的三件事
git lfs install 和 git lfs track "*.rvt" 只是起点。LFS 坏在静默失败——文件看似推上去了,实际指针丢了,别人拉下来只剩空壳。
- 确认
.gitattributes已提交:检查内容是否含*.rvt filter=lfs diff=lfs merge=lfs -text,且该文件本身不能被 LFS 跟踪 - 推送前跑
git lfs ls-files,核对列表是否包含所有待跟踪的大文件;若为空,说明track没生效或路径写错(注意通配符斜杠方向) - 团队首次克隆必须用
git clone(不是git lfs clone),后者已废弃;拉取后执行git lfs pull补全大文件,CI 脚本里也得显式加这句
真正卡住协同的,从来不是工具链多复杂,而是 VERSION 文件谁改、什么时候改、改完有没有同步通知下游引用者——这个动作没人负责,自动化就只是摆设。










