Composer无法更新来自git存储库的require,其中分支名称以digit开头并具有句点

时间:2016-12-08 20:05:32

标签: json github composer-php

我已经在https://github.com/laravel-doctrine/orm分叉了存储库,我试图在composer.json脚本中将其添加为需求。

我的json(相关位)如下:

"repositories": [
    {
      "type": "git",
      "url": "https://github.com/MyGHAccount/laravel-doctrine.git"
    },
.
.
.

"require": {
    .
    .
    .
    "laravel-doctrine/orm": "dev-1.2"

Composer会生成以下错误:

您的要求无法解析为可安装的软件包。

  

问题1        - 在任何版本中都找不到请求的包laravel-doctrine / orm,包名中可能有拼写错误。

     

潜在原因:     - 包名中的拼写错误     - 根据您的最小稳定性设置,该包装没有足够稳定的版本   https://getcomposer.org/doc/04-schema.md#minimum-stability了解更多信息   的信息。

     

阅读https://getcomposer.org/doc/articles/troubleshooting.md   进一步的常见问题。

https://github.com/laravel-doctrine/orm的实际分支名称为1.2

This SO question让我相信Composer对分支名称中的句点没有问题,但不能处理以数字开头的分支。

我找到了一个解决方法,因为我只是将我在GitHub上的分支重命名为master;我只是想知道在没有解决方法的情况下是否有正确的方法来使用Composer。

1 个答案:

答案 0 :(得分:1)

第1期

这没有意义:https://github.com/MyGHAccount/laravel-doctrine/orm.git

如果您分叉原始存储库,fork会有另一个URL而不是您在此处发布的URL。

只有两个级别:github.com/vendor/repo

可能https://github.com/MyGHAccount/orm.git

第2期

您没有使用Composers详细模式。请使用Composer的详细模式(-vvv)让Composer告诉您包解析故事及其问题。您可以自己解决问题。

第3期

之前 - 使用packagist包:

composer.json

{
    "require": {
        "laravel-doctrine/orm": "1.2"
    }
}

用您自己的分支后覆盖:

composer.json

{
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/your-account/orm"
        }
    ],
    "require": {
        "laravel-doctrine/orm": "1.2"
    }
}