新闻中心

如何在 Composer 中为一个依赖包指定一个特定的 Git commit hash?

2025-12-07
浏览次数:
返回列表
可在composer.json中用commit hash替代版本号,需带分支前缀如dev-main#abc1234,且须配置VCS仓库确保可访问,执行composer update或install即可精确检出指定提交。

如何在 composer 中为一个依赖包指定一个特定的 git commit hash?

可以直接在 composer.json 中用 commit hash 替代版本号,Composer 会精确拉取该提交。

使用 commit hash 作为版本约束

requirerequire-dev 中,把包的版本号写成具体的 40 位(或短格式)Git commit hash 即可。Composer 会自动识别为“精确提交”,并从对应仓库检出该 commit。

  • 完整 hash 示例:"monolog/monolog": "dev-main#abc1234567890123456789012345678901234567"
  • 短 hash 也支持(只要能唯一标识):"monolog/monolog": "dev-main#abc1234"
  • 注意必须带上分支名前缀(如 dev-maindev-master),否则 Composer 无法定位仓库

确保仓库地址正确且可访问

Composer 默认从 Packagist 拉取,但 commit hash 只对 VCS 包有效。如果包不在 Packagist,或你想覆盖源,需显式配置仓库:

简小派 简小派

简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。

简小派 123 查看详情 简小派
  • composer.json 中添加 repositories 字段,指定 Git URL
  • 例如:{"type": "vcs", "url": "https://github.com/Seldaek/monolog"}
  • 私有仓库需提前配置 SSH 或 token 认证(如 git@github.com:user/repo.git

行安装或更新

改完 composer.json 后运行:

  • composer update vendor/package-name(只更新指定包)
  • composer install(若已锁定了 hash,会严格按 composer.lock 恢复)
  • 成功后可在 vendor/ 下看到该包的 .git/HEAD 指向你指定的 commit

基本上就这些。不复杂但容易忽略分支前缀和仓库可访问性。

以上就是如何在 Composer 中为一个依赖包指定一个特定的 Git commit hash?的详细内容,更多请关注其它相关文章!


# 加载  # 昌黎哪里网站建设特价  # 什么网站可以优化流量  # 京东营销推广的具体案例  # 大庆seo培训有哪些  # seo三千字论文  # 有效的网站推广平台  # 成都智能营销软件推广  # 推广网站的视频广告  # 宜宾网站优化推广  # 泰安网站建设运营  # 相关文章  # 你想  # js  # 交互性  # 如何在  # 如虎添翼  # 可在  # 中为  # 如何使用  # 如何解决  # ai  # github  # composer  # json  # git 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  蛙漫安全无毒 官方认证的绿色入口  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换  Python字典中优雅地迭代剩余元素的方法  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  12306选座怎么选到临时改签座_12306改签选座策略与步骤  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  Lar*el Form Request中唯一性验证在更新操作中的正确实现  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  《噬血代码2》新预告片发布 展示游戏剧情  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享  必由学官网入口 必由学教师登录入口  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  yandex入口引擎手机版 yandex安卓版下载入口  网易大神账号申诉需要多久_网易大神账号申诉流程说明  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  C++如何生成随机数_C++ random库使用方法与范围设置  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  J*aScript Promise链中如何正确终止后续.then执行并处理错误  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  AO3官方可用镜像 Archive of Our Own网页版最新入口  在WordPress中通过REST API获取BasicAuth保护的远程文章  excel怎么制作工资条 excel快速生成工资条的方法  Python实时数据流中的动态最值查找策略  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  C++指针和引用有什么区别_C++内存管理核心概念深度解析  css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  126邮箱账号注册 电脑版登录入口  C++如何实现异步操作_C++11使用std::future和std::async进行异步编程  Spyder启动失败:字体文件权限拒绝错误解决方案  C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用  win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】  如何在 Excel Online 和 Google 表格中更改日期格式  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性  zookeeper 都有哪些功能?  J*aScript中向JSON对象添加新属性的正确姿势  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  德邦快递查询平台 德邦快递物流信息查询入口  PHP中获取MongoDB服务器运行时间(Uptime)的专业指南  印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】 

搜索