ChatGPT解决这个技术问题 Extra ChatGPT

作曲家需要分支名称

例如我想要求:

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

T
Tomas Votruba

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

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

composer require google/apiclient:dev-v1-master

请参阅composer docs


方便的信息。谢谢!
我正在 Windows 机器上尝试,但找不到正确的命令来运行 composer 从 git 存储库下载包。所以请你帮忙?
添加 'dev-' 前缀仅在 composer 命令中。您是否不需要更改存储库分支名称中的任何内容
有人可以解释为什么分支名称中需要“dev-”来检查不在开发中的分支吗?
这只是作曲家约定。请参阅“如果您为不可比较的版本(例如 dev-develop)起别名,则 dev- 必须在分支名称前加上别名。您也可以为可比较的版本起别名(即以数字开头,以 .x-dev 结尾),但仅限于一个更具体的版本。例如,1.x-dev 可以别名为 1.2.x-dev。 - getcomposer.org/doc/articles/aliases.md#branch-alias
f
fico7489

这将起作用:

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

如果您分叉了主仓库,请不要在要求部分更改供应商名称。分叉:"url": "https://github.com/your-username/google-api-php-client.git" 但需要保持:google 供应商。
R
Remigiusz Samborski

我正在尝试对包含多个软件包的不同 Google 存储库进行相同的操作,我花了一些时间才弄清楚。因此,我在下面分享我的解决方案。

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

以下步骤对我有用:

克隆存储库

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 包所在的 Compute 子文件夹。

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