【问题标题】:Composer create-project: Working with forked repositoryComposer create-project:使用分叉存储库
【发布时间】:2014-08-21 18:57:26
【问题描述】:

我正在为我的 Wordpress 项目使用来自 Roots.IO 的出色的 Wordpress 堆栈 Bedrock。我从原始存储库创建了一个分支,并根据我的具体情况进行了轻微的定制,因为开发人员鼓励我们在他们的 README 文件中这样做。

推荐的 Bedrock 安装是通过 Composer 命令composer create-project roots/bedrock 完成的,该命令从 Packagist 下载包。这可行,尽管我需要使用它的分叉版本。

如果我对 Composer 的理解正确,我有几个选择:

到 Packagist 的分叉存储库

将我的分叉存储库提交给 Packagist。 Packagist 不建议这样做,但我已经尝试过一些奇怪的结果(如果需要,我可以详细说明)。

使用自定义存储库 URL 创建项目

运行create-project 命令并将--repository-url 选项设置为我的分叉存储库的URL。对于以下错误(对于原始存储库和分叉存储库),这并不适用:

$ composer create-project wpgrouse/wpgrouse-bedrock --repository-url:https://github.com/wpgrouse/wpgrouse-bedrock.git

无法下载文件https://github.com/wpgrouse/wpgrouse-bedrock/packages.json

嗯,基岩中没有这样的文件。

使用原始存储库并每次手动创建修改

这很糟糕,原因很明显。


你能帮我解决这个头痛吗? I posted the question to Bedrock GitHub as well,但是我非常着急,我也想在这里寻求一些帮助。

提前谢谢你,彼得!

【问题讨论】:

    标签: wordpress git github composer-php packagist


    【解决方案1】:

    选项 2 绝对正确。

    您需要为作曲家创建一个存储库,以便从中提取您的项目信息。最简单的解决方案是使用由制作 Composer 的同一个人制作的 Satis。 Satis 是一个简单的包存储库生成器(就像一个静态的 Packagist)。

    我的 satis.json 看起来像这样:

    {
        "name": "Your Satis name",
        "homepage": "Url to your satis",
        "repositories": [
            { "type": "vcs", "url": "git@your-git-url:your-user/bedrock.git" }
        ],
        "require-all": true
    }
    

    我的基岩分支托管在私人 gitlab 服务器上,但我想您的 url 可能在 github 或 bitbucket 或其他任何地方。

    然后您将需要运行 satis 以创建存储库。请参阅 github 存储库以了解如何执行此操作。 Satis 将吐出一个包含您的存储库内容的文件夹。我将我的托管在一个简单的网络服务器上。由于它只是 html,我相信您可以将其托管在 github 页面甚至本地。

    然后您就可以拨打电话了:

    composer create-project roots/bedrock --stability=dev --repository-url=http://your-statis-url <project_name>
    

    如果您有任何疑问或需要更多详细信息,请不要犹豫。

    【讨论】:

    • 路易斯,非常感谢您的回答! Satis 似乎正是我一直在寻找的解决方案。到达我的截止日期后,我将对此进行调查并接受您的回答!目前,我坚持使用手动 git 克隆,因为它需要零设置。
    【解决方案2】:

    对于任何谷歌加速器,I've received my answer on GitHub from Bedrock creators

    (选项 2)应该是正确的,但 Composer 文档似乎不适合此功能。 请参阅:Composer create-project fails on local package repository,作曲家/作曲家#1899。基本上你需要在某个地方创建一个本地 packages.json 来定义你的 fork,然后使用该 packages.json 作为 --repository-url

    我现在可能会坚持手动克隆存储库,即使它不如点击create-project 命令那么闪亮。

    另外,如果没有更聪明的人来,我会在这里留下这个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2018-10-04
      • 2020-02-24
      • 1970-01-01
      • 2015-12-23
      • 2016-07-23
      • 2020-08-14
      相关资源
      最近更新 更多