【问题标题】:Composer Use Local Git Bundle As it Would a Git RepoComposer 使用本地 Git 捆绑包,就像使用 Git 存储库一样
【发布时间】:2019-12-11 05:18:53
【问题描述】:

我有一个场景,我正在部署的机器无法直接访问 Git 存储库。所以解决方案是我将我的 repo 的 Git 包本地复制到将部署代码的机器上。

所以它看起来像这样。

/var/local/repos/MyGitRepo/MyGitRepo.git

如果我想在普通的 git 客户端上使用它,我可以这样做

git clone /var/local/repos/MyGitRepo/MyGitRepo.git MyGitRepo

我在 MyGitRepo 目录中签出了 MyGitRepo。

我的问题是,当我使用composer安装MyGitRepo时,我必须参考MyGitRepo签出的Git repo,而不是/var/local/repos/MyGitRepo/MyGitRepo.git

所以存储库看起来像这样:

{
 "type" : "vcs",
  "url" : "/where/i/put/MyGitRepo"
}

这可行,但我不能只将作曲家指向 git 存储库而不是签出的 git 存储库吗?

我觉得这应该可行:

{
 "type" : "vcs",
  "url" : "/var/local/repos/MyGitRepo/MyGitRepo.git"
}

我收到此问题的报告。

在任何版本中都找不到请求的包 mygitrepo, 包名可能有错别字。

如果我必须将 composer 指向已签出的本地存储库,那很好,但似乎我应该能够像使用任何 Git 存储库一样使用该 .git 包。

【问题讨论】:

    标签: php git github composer-php


    【解决方案1】:

    您可以使用path 类型的存储库在您的供应商文件夹中创建一个指向您的克隆的符号链接。取自文档:

    {
        "repositories": [
            {
                "type": "path",
                "url": "/var/local/repos/MyGitRepo/MyGitRepo.git"
            }
        ],
        "require": {
            "my/package": "*"
        }
    }
    

    【讨论】:

    • 我已经可以指向克隆了,我不想再克隆了。
    • 恐怕我听不懂。 “git repo”和“签出 git repo”有什么区别? path 存储库可以指向磁盘上包含您的包的任何目录。它不一定是 git clone。
    • 那是问题的一部分,我不知道叫什么东西。我想在我的作曲家中指向 .git 文件,就像我们通过 ssh 或其他方式引用 git repo 时所做的那样。我通常不会将 composer 指向一个 git repo 的克隆结帐。
    • 我认为你做不到。你需要在磁盘的某个地方有一个包(git checkout 或上传到你的服务器),然后你可以在composer.json 中使用path 存储库类型来指向它。
    • 我认为你是对的,我只是想验证我没有遗漏 git 的内容。似乎它应该指向这个 /var/local/repos/cphython.git 而不是 git@github.com:python/cpython.git
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2015-03-19
    • 2014-09-06
    • 2013-06-29
    • 2015-01-19
    • 2013-08-01
    • 2016-10-05
    • 2023-03-20
    相关资源
    最近更新 更多