我可以用作曲家拉一个特定的提交吗?

Moa*_*oak 29 php git composer-php

是否可以使用composer获取某个拉取请求?就像fork的特定提交一样?指令会是什么样的?

编辑:上下文这将有所帮助,所以我不必等待创建新标签.我确信它会被合并,但我不知道当时开发人员是否会有机会而且我宁愿不推迟我的工作流程......

编辑2:现在我考虑一下,当开发人员制作公共包的分支时,他们可能需要在一个或两个项目中测试自己的fork,甚至在推送请求之前

编辑3:示例我试图拉这个https://github.com/valorin/dispatcher/commit/c566eb6902f378abd59943e7ea09f61e734c8960无济于事,我试过:

    "valorin/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960"
Run Code Online (Sandbox Code Playgroud)

    "indatus/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960"
Run Code Online (Sandbox Code Playgroud)

编辑4:非常成功

"require": {
        "indatus/dispatcher": "dev-develop#c566eb6"
}
Run Code Online (Sandbox Code Playgroud)

添加dev-前缀就可以了

Jez*_*Jez 34

您无法直接引用拉取请求,但始终可以获取特定的提交.您只需要找到pull请求引入的提交哈希.(如果你正在使用github它在提交标签中).

然后你需要在你的composer.json中使用这样的东西 -

 "require": {
    "mysoftware/thesoftware": "dev-master#3f38376d"
}
Run Code Online (Sandbox Code Playgroud)

mysoftware/thesoftware您将使用的常用供应商/软件名称在哪里,右侧的"#"后面的部分是您想要的特定提交哈希.


Aer*_*dir 9

建议并批准的解决方案可用于下载已在主存储库中合并的提交。

如果您想从尚未提出的合并请求中下载提交,则必须遵循不同的方法。

假设您拥有该软件包vendor/package,并且“ RandomUser”在GitHub上创建了一个fork,创建了一个新分支,patch-1并对其进行了一些修改,您想测试它们是否可以通过composer下载。

然后,composer.json必须以这种方式编写文件:

{
    "type": "project",
    "license": "proprietary",
    "require": {
        ...
        "vendor/package": "dev-patch-1#1234567890",
        ...
    },
    ...
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/RandomUser/Package.git"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

如您所见,在文件require部分中,composer.json您像往常一样请求软件包,但是您添加了特定的分支dev-patch1,在其前面加上前缀dev-以降低的最低稳定性dev,并添加#1234567890了特定的提交ID。

然后,您还添加提交PR的用户的特定存储库:这使Composer能够下载git存储库,检查该存储库上的现有分支,读取其composer.json文件并使用它来安装所需的依赖项。