gpt4 book ai didi

composer-php - 如何将特定标签/版本与 Composer 和私有(private) git 存储库一起使用?

转载 作者:行者123 更新时间:2023-12-03 09:44:38 24 4
gpt4 key购买 nike

我在我公司的 Gitlab 上托管了一些软件包。我想请求这些包的特定版本,但每次尝试时,composer 都会下载 master 分支的最新提交。
Composer .json:

{
"name" : "MyProject",
"require" : {
"user/project" : "v0.5.0"
},
"type" : "project",
"repositories" : [
{
"url" : "git@gitlab.XXXX.fr:user/project.git",
"type" : "vcs"
}
],
"config" : {
"vendor-dir" : "private/class"
}
}
我的包的存储库的结构:
  • 标签 v0.5.0 : 提交 dd6ed3c8...
  • 提交 X,Y,Z
  • 标签 v0.7.0:提交 15293ac6...
  • 最后一次提交 f15600a1...

  • 当我执行“composer install”时:

    Loading composer repositories with package information

    Installing dependencies (including require-dev)

    Analyzed 69 packages to resolve dependencies

    Analyzed 67 rules to resolve dependencies

    • Installing user/project (dev-master f15600a)

      Cloning f15600a1


    它仅下载最后一次提交。
    如何配置我的项目的 composer.json 文件以使用特定标签?

    最佳答案

    如何要求特定的 Git 标签?

    将版本要求更改为 dev-master , 后跟一个哈希 #和 Git 标签名称,例如v0.5.0 ,像这样:

    "require": {
    "vendor/package": "dev-master#v0.5.0"
    }

    如何要求特定的 Git 提交?

    将版本要求更改为 dev-master , 后跟一个哈希 #和 Git 提交引用,例如 dd6ed3c8 ,像这样:
    "require": {
    "vendor/package": "dev-master#dd6ed3c8"
    }

    引用: https://getcomposer.org/doc/04-schema.md#package-links

    定义自己的包并设置版本和引用

    使用 "type": "vcs" 存储库的替代方法是定义一个自定义包 "type": "package"内部存储库并使用引用。

    引用可以是 Git 提交哈希,也可以是标签或分支名称,例如 origin/master .

    这将绑定(bind) version到特定的提交 reference ,在本例中为 dd6ed3c8。
    "repositories": [
    # ...
    {
    "type": "package",
    "package": {
    "name": "vendor/package",
    "version": "v0.5.0",
    "source": {
    "url": "git@gitlab.server.com:vendor/project.git",
    "type": "git",
    "reference": "dd6ed3c8"
    }
    }
    }
    ]

    关于composer-php - 如何将特定标签/版本与 Composer 和私有(private) git 存储库一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34784809/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com