Composer 需要分支名称

例如,我想要求:

{
"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"
107307 次浏览

您需要以 dev-作为所有 dev 分支(= 未标记)的前缀。

要安装所需的分支,请使用:

composer require google/apiclient:dev-v1-master

参见 作曲家文档

这将奏效:

{
"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

我正在尝试同样的一个不同的谷歌存储库,其中包含几个包,它花了我一些时间来弄清楚它。因此,我在下面分享我的解决方案。

我的目标是把最新的谷歌/云计算从主分支的 https://github.com/googleapis/google-cloud-php.git

下面的步骤对我很有效:

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


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


请注意,在步骤2中,url指向 Compute 子文件夹,该子文件夹中存在实际的 google/cloud-computer 包。

我的解决方案可以很容易地针对任何分支进行调整,您只需要在步骤1中签出适当的分支,然后在步骤2中将“ dev-master”更改为“ dev-Your _ BRANCH”。