例如,我想要求:
{
"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-
作为所有dev分支(=未标记)的前缀。
要安装您需要的分支,请使用:
composer require google/apiclient:dev-v1-master
请参阅composer文档。
这将起作用:
{
"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在master分支中。
以下步骤对我有效:
- 克隆存储库
git clone https://github.com/googleapis/google-cloud-php.git google-cloud-php
- 设置composer.json以使用本地文件夹中的正确包:
{
"repositories": [
{
"type": "path",
"url": "/Users/USERNAME/projects/google-cloud-php/Compute"
}
],
"require": {
"google/cloud-compute": "dev-master"
}
}
请注意,在步骤2中,url
指向存在实际google/cloud计算包的Compute子文件夹。
我的解决方案可以很容易地针对任何分支进行调整,您只需要在步骤1中gitcheckout适当的分支,然后在步骤2中将"dev-master"更改为"dev-YOUR_branch"。