项目占空间先查构建缓存与旧 worktree

**一个 monorepo「占了十几个 G」,通常不是源码占的,而是构建缓存 + 旧 worktree + 构建产物。排查时按「安全可删 → 需确认」的顺序看,先释放不碰代码/git/数据库的那部分。**

典型占用分布

位置性质能否安全删
.turbo/cache(Turborepo 构建缓存)缓存,会自动再生成✅ 可立即删
worktree/*(各分支独立目录,含 iOS/Rust/Xcode 产物)旧分支产物需确认分支是否还要
apps/web/.next构建产物⚠️ 服务运行中先别碰
node_modules / .git依赖 / 版本库❌ 不动

做法

  • 先删构建缓存(.turbo/cache 之类),它不影响源码、会自动重建,往往一次就释放最大一块。
  • 再决定是否清理旧 worktree 和 .next;正在运行的服务用着的产物先别动。
  • 结合磁盘剩余空间判断紧急度。

别漏了系统级的构建缓存

按项目目录排查只看到一半。macOS「关于本机 → 储存空间」里的「开发者工具」不是某个软件, 而是系统把 Xcode 产生的构建缓存、代码索引、真机调试文件、模拟器数据归到这一类。实测大头是:

位置性质能否安全删
Xcode DerivedData(~/Library/Developer/Xcode/DerivedData)编译产物与模块索引✅ 可删,会重建
iOS Device Support真机系统符号(调试、解析崩溃栈用)⚠️ 删了下次连真机重新下载
模拟器数据模拟器设备镜像✅ 可删不用的设备

两个容易误判的点:

  • 临时构建目录删了,Xcode 缓存还在:工程源目录在 /tmp 下已被清掉,DerivedData 里那份同名缓存会一直留着 —— 所以「我早就删了那个项目」不等于空间已释放。
  • 容量对不上先看十进制/二进制:系统面板用十进制 GB,du 用二进制 GiB,同一个目录显示 20.15 GB / 19 GiB 是同一块空间,不是两处占用。

所以排查顺序是:先按项目目录清(缓存 / 旧 worktree / 构建产物),再查 Xcode DerivedData 与模拟器。

相关