Composer 不会自动更新 Git submodules,但可通过配置 scripts 钩子实现:在 composer.json 中添加 post-install-cmd 和 post-update-cmd 脚本执行 git submodule update –init –recursive,确保环境已安装 Git 并配置好 submodule 访问权限,若 submodule 属于第三方包需保证其仓库正确包含 submodule 且有对应访问凭证,推荐使用封装脚本检查 .git 目录和 submodule 状态以避免非 Git 环境报错,最终通过 Composer 脚本机制触发 Git 操作完成自动更新。

Composer 本身不会自动更新 Git submodules,因为它的职责是管理 PHP 依赖,而不是处理版本控制逻辑。但你可以通过一些方式在 Composer 安装或更新时触发 submodule 的更新操作。
如果你的项目或某个 Composer 包使用了 Git submodules,并希望在 composer install 或 update 时自动拉取或更新这些 submodules,可以通过 Composer 的 scripts 功能来实现。
1. 在项目根目录的 composer.json 中添加脚本
你可以在 composer.json 的 “scripts” 部分添加命令,在安装或更新后自动执行 Git submodule 更新:
{ "scripts": { "post-install-cmd": [ "git submodule update --init --recursive" ], "post-update-cmd": [ "git submodule update --init --recursive" ] }}
这样,每次运行 composer install 或 composer update 后,Composer 都会自动执行 submodule 的初始化和更新。
2. 如果 submodule 属于某个 Composer 包
如果 submodule 是某个第三方包的一部分,而该包是通过 Composer 引入的(比如从私有 Git 仓库加载),那么你需要确保:
该包的源代码仓库中已正确配置了 submodule你在 composer.json 中使用 vcs 类型引入该仓库目标机器上有权限访问 submodule 的 Git 地址(如 SSH 密钥配置)
然后同样通过上面的脚本触发更新。
3. 确保 Git 正确配置
submodule 更新需要 Git 支持,并且你的部署环境必须:
如知AI笔记
如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型
27 查看详情
安装了 Git能访问主仓库和 submodule 的远程地址如果有私有 submodule,需配置 SSH 密钥或 Git 访问令牌
4. 可选:添加初始化检查
如果你想更安全地运行,可以写一个简单的 shell 脚本代替直接命令:
{ "scripts": { "post-install-cmd": "sh ./scripts/update-submodules.sh", "post-update-cmd": "sh ./scripts/update-submodules.sh" }}
脚本内容(./scripts/update-submodules.sh):
#!/bin/bashif [ -d ".git" ] && git submodule status | grep -q '.'; then git submodule update --init --recursive echo "Submodules updated."else echo "No submodules to update or not a git repo."fi
这样可以避免在非 Git 环境或没有 submodule 的情况下报错。
总结:Composer 不直接管理 submodules,但你可以利用它的脚本钩子(如 post-install-cmd 和 post-update-cmd)来自动执行 git submodule update –init –recursive,从而实现“自动更新”的效果。关键是配置好脚本、Git 权限和部署环境。
基本上就这些。
以上就是如何让composer自动更新git submodules的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/251960.html
微信扫一扫
支付宝扫一扫