我想将分支 1.x 中的 this 标记添加到我的项目中。

我指定:"monolog/monolog": "dev-1.x#1.23.0"
并运行 composer update monolog/monolog
Composer 说:

Problem 1
    - The requested package monolog/monolog dev-1.x#1.23.0 exists as monolog/monolog[1.0.0, 1.0.0-RC1, 1.0.1, 1.0.2, 1.1.0, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.13.1, 1.14.0, 1.15.0, 1.16.0, 1.17.0, 1.17.1, 1.17.2, 1.18.0, 1.18.1, 1.18.2, 1.19.0, 1.2.0, 1.2.1, 1.20.0, 1.21.0, 1.22.0, 1.22.1, 1.23.0, 1.3.0, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.9.1, 1.x-dev, dev-master, 2.x-dev] but these are rejected by your constraint.

我想从特定分支中提取特定标签。我该怎么办? this answer 建议我应该没事。

更新:

在遵循 Loek 的建议并删除实际标签之前的所有内容后,我得到了这个:The requested package monolog/monolog (installed at 1.21.0, required as 1.23.0) is satisfiable by monolog/monolog[1.21.0] but these conflict with your requirements or minimum-stability.
我已经设置了 "minimum-stability": "dev"

最佳答案

您可以使用 the composer why-not command 查看哪些软件包与您指定的版本冲突。

因此,无需对 composer.json 进行任何更改,运行:

composer why-not monolog/monolog 1.23.0

这应该会告诉您发生冲突的位置。

您还可以采取一些措施来减少此类冲突的发生:
  • 在您的版本约束中不那么严格。与包的特定版本 Hook 使 Composer 无法更自由地找到一组工作包。
  • 编辑约束,然后不带任何参数运行 composer update,让 Composer 找到满足这些约束的最佳包集,而不是强制它一次更改一个包。
  • 关于php - 请求的包存在,但这些被您的约束拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51240906/

    10-10 04:10