如何要求作曲家的叉子


172

这是我的composer.json,我想在Github上使用Nodge的lessphp项目的fork

 "repositories": [{
    "type": "package",
    "package": {
        "version": "dev-master",
        "name": "nodge/lessphp",
        "source": {
            "url": "https://github.com/Nodge/lessphp.git",
            "type": "git",
            "reference": "master"
        },
        "autoload": {
            "classmap": ["lessc.inc.php"]
        }
    }
}],
"require": {
    "php": ">=5.3.3",
    "nodge/lessphp": "dev-master"
},

但是当我进行更新时,我有此错误:

nodge / lessphp dev-master->找不到匹配的软件包。

我不知道该叉子如何正确要求它...

有什么建议 ?

Answers:


227

最常见(也是最简单)的方法是使用VCS存储库。

您要做的就是将fork添加为存储库,并更新版本约束以指向您的自定义分支。您的自定义分支名称必须以开头dev-

假设您修补了monolog以修复bugfix分支中的错误的示例:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}

请注意,除了指定bugfix分支外,您无需更改require语句。您仍然引用上游包(monolog/monolog),而不是您的个人叉子(igorw/monolog)。您可以在文档中阅读详细信息


6
这似乎不是工作不github.com/Polycademy/purl这是一个叉github.com/jwage/purl我一直想:“库”:[{“类型”:“风险投资”,“网址“:”“ git@github.com:Polycademy / purl.git”}]和“ require”:{“ jwade / purl”:“ dev-master”,},但是我不断得到:问题1-请求的软件包jwade在任何版本中都找不到/ purl,包名称中可能有错字。
CMCDragonkai 2013年

11
@CMCDragonkai尝试运行composer show jwade/purl -v它应该告诉您为什么它忽略了dev-master版本。
Seldaek

4
@seldaek,你救了我!谢谢!(我的叉子叫dev-dev- ..)不知道命名是自动的。
米格尔·史蒂文斯

13
“阅读文档”是一个不好的答案,一个更好的答案是举一个具体的例子
oskarth '16

7
很高兴警告您不要提及个人叉子。这节省了我的时间,+ 1
edrian
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.