作曲家需要分支名称

Composer require branch name

例如我想要求:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "v1-master"
  }
}

在这个例子中,我尝试在分支 v1-master 上要求 google/apiclient。我收到错误:

  [UnexpectedValueException]                                                        
  Could not parse version constraint v1-master: Invalid version string "v1-master"

您需要在所有开发分支(= 未标记)前加上 dev-

要安装你需要的分支,使用:

composer require google/apiclient:dev-v1-master

参见composer docs

这会起作用:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "dev-BRANCH_NAME"
  }
}

所以模式是 "dev-*",如果你的分支名称是 "bug-fix" 那么 "dev-bug-fix"

使用命令行:

composer require google/apiclient:dev-BRANCH_NAME

我试图对另一个包含多个包的 Google 存储库进行同样的操作,我花了一些时间才弄明白。因此我在下面分享我的解决方案。

我的目标是从 master 分支中的 https://github.com/googleapis/google-cloud-php.git 拉取最新的 google/cloud-compute。

以下步骤对我有用:

  1. 克隆存储库
git clone https://github.com/googleapis/google-cloud-php.git google-cloud-php
  1. 设置 composer.json 以使用本地文件夹中的正确包:
{
    "repositories": [
        {
            "type": "path",
            "url": "/Users/USERNAME/projects/google-cloud-php/Compute"
        }
    ],

    "require": {
        "google/cloud-compute": "dev-master"
    }
}

请注意,在第 2 步中,url 指向实际 google/cloud-compute 包所在的 Compute 子文件夹。

我的解决方案可以针对任何分支轻松调整,您只需要 git 在步骤 1 中检查适当的分支,然后在步骤 2 中将 'dev-master' 更改为 'dev-YOUR_BRANCH'。