Composer默认不删vcs/目录,因其将Git裸仓库视为“可能复用”资源,但实际极少复用,反而长期占用300–800MB空间并耗尽inodes;需手动执行rm -rf $(composer config --global cache-dir)/vcs/(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows)彻底清理。

为什么composer clear-cache不删vcs/目录?
Composer 默认跳过 vcs/ 目录,因为它把 Git 克隆缓存当作“可能复用”的资源——比如多个项目依赖同一份 Symfony 源码时,理论上能共用裸仓库。但现实中几乎不会复用:每个项目 composer install --prefer-source 都会触发新克隆,旧的就闲置在那儿,占着 300–800 MB 空间还耗尽 inodes。
Linux/macOS 下手动清空 vcs/ 的安全命令
确认没有后台 composer install 或 update 进程在跑(否则会报 Corrupted cache file),再执行:
rm -rf $(composer config --global cache-dir)/vcs/
注意尾部斜杠:~/.composer/cache/vcs/ 和 ~/.composer/cache/vcs 在 rm -rf 下行为不同,带斜杠更明确指向目录内容,避免误删上层目录。
- 执行前可用
ls -ld $(composer config --global cache-dir)/vcs确认路径存在且可读 - 如果提示
Permission denied,说明部分子目录属主是 root(比如曾用sudo composer install),先sudo chown -R $USER:$(id -gn) $(composer config --global cache-dir)/vcs - 清完不用重装或重配,下次需要时自动重建,完全安全
Windows 用户怎么删 vcs/?
PowerShell 中运行:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
rd /s /q "$env:APPDATA\Composer\Cache\vcs"
CMD 中则用:
rd /s /q "%APPDATA%\Composer\Cache\vcs"
和 Linux/macOS 一样,必须确保没有 Composer 进程正在写入该目录;否则可能触发锁冲突或后续命令失败。
- 别用资源管理器直接删——容易卡住或删不干净
- 删完检查是否真释放了空间:
dir /s "%APPDATA%\Composer\Cache\vcs"应报“找不到文件” - 若公司镜像或自建 Packagist 覆盖了缓存路径,先用
composer config --global cache-dir确认真实位置,别硬写默认路径
清 vcs/ 后磁盘还是满?查 inodes 而不是空间
vcs/ 目录下全是小文件(每个 commit 哈希一个目录、每个 ref 一个文件),极易耗尽 inodes。即使 df -h 显示还有 20 GB 空间,也可能报 No space left on device。
- Linux/macOS 查 inodes 使用率:
df -i,看Use%是否接近 100% - Windows WSL 同样适用
df -i;原生 Windows 不受 inodes 限制,但 APFS(macOS)和某些 NAS 文件系统也会有类似问题 - 只清
vcs/就能显著缓解——它常占整个缓存 inodes 总数的 90% 以上
真正麻烦的是,这个目录没人盯着,一放就是几年,等发现时已经塞满几万个 Git 对象。

















