composer status 可检测本地被修改的依赖包。运行该命令后,若存在改动会列出相应路径,如 vendor/symfony/http-foundation;无更改则提示 No local changes。常用于排查手动修改、确保部署一致性。建议不长期保留 vendor 修改,应通过 patch 或源码提交管理变更。结合 git diff、git reset 等命令可审查和恢复更改,保障项目稳定与可重复构建。

当你在开发 PHP 项目并使用 Composer 管理依赖时,可能会对某些第三方包进行本地修改(例如调试或临时补丁)。要检查这些被修改过的包,可以使用 composer status 命令。
作用:查看本地有改动的已安装包
composer status 的主要用途是列出那些通过 Composer 安装、但其本地文件已被修改的包。这在你手动更改了 vendor 目录中的代码后特别有用,帮助你快速发现哪些包偏离了原始发布版本。
如何使用 composer status
在项目根目录下运行:
composer status
如果存在被修改的包,输出会类似:
Changed package sources: vendor/symfony/http-foundation vendor/laravel/framework
如果没有改动,会提示:
No local changes
常见场景与建议
这个命令适用于以下情况:
- 你在
vendor/目录中直接修改了某个包的代码进行测试 - 你想确认项目是否处于“干净”状态,便于部署或协作
- 你使用了
path类型的仓库指向本地开发中的包,想确认是否有未提交的更改
建议:不要长期保留对 vendor 包的手动修改。应将修改提交到对应包的 Git 仓库,或创建 patch 使用 composer-patches 插件管理。
配合其他命令使用
你可以结合 Git 检查具体修改内容:
- 进入对应包目录:
cd vendor/symfony/http-foundation - 查看变更:
git diff - 恢复原始状态:
git reset --hard && git clean -fd
这样能确保依赖的一致性和可重复构建。
基本上就这些。composer status 虽然简单,但在排查异常行为或维护项目稳定性时非常实用。










