不能。composer show仅显示已安装包的名称、版本、描述及依赖关系,读取vendor/composer/installed.json快照,不连接远程仓库,故无更新日志。

composer show 能看到更新日志吗
不能。composer show 只显示已安装包的名称、版本、描述和依赖关系,不包含任何提交记录、变更说明或更新日志。它本质上是读取 vendor/composer/installed.json 的快照数据,不是连接远程仓库查历史。
用 composer outdated 查哪些包可更新,但看不到 changelog
composer outdated 会列出所有可升级的包及其当前/最新版本号,但它本身不拉取或展示变更内容。想看改了什么,得手动去对应项目的 GitHub/GitLab 页面找 CHANGELOG.md 或 releases 页面——这很慢,且对私有包或非标准托管方式基本不可行。
- 默认只检查稳定版本(
--all可包括 dev 版本) - 加
-f json输出结构化数据,方便脚本解析,但依然不含日志内容 - 如果包没维护
CHANGELOG.md或没打 release tag,就真没标准入口
真正能拿到更新日志的两个实操路径
目前没有 Composer 原生命令直接输出 changelog,但可通过组合命令逼近目标:
- 对 GitHub 托管的公开包:用
composer show vendor/package --source获取源码地址,再拼出对应 release 页面 URL,例如https://github.com/laravel/framework/releases/tag/v10.48.0 - 本地已有
vendor/且包含 Git 信息时,进目录执行git log v9.52.0..v10.48.0 --oneline CHANGELOG.md(需确认该文件在提交中被修改过) - 更可靠的做法是查包的官方文档页——比如 Laravel、Symfony 都把变更日志放在 docs 网站而非 GitHub,
composer show输出的homepage字段常指向那里
别指望 composer update --dry-run 带日志
composer update --dry-run 只模拟依赖解析过程,输出将要安装的版本号,不会触发任何远程日志拉取行为。它不 clone、不 fetch、不 checkout,连 Git 仓库都不碰。所谓“预览更新”仅限于版本号映射,不是变更预览。
如果你发现某次更新后行为异常,最实际的做法是:先用 composer show vendor/package 确认版本,再立刻去该包的 CHANGELOG.md 或 release notes 手动比对——自动化工具在这块依然缺位,得靠人工锚定关键版本节点。











