更改包的 Composer git 源代码

2022-08-30 21:48:33

我使用 Composer 和这个 composer.json 拉入一个包:

{
    "require": {
        "torophp/torophp": "dev-master",
    },
}

当我运行时,它似乎直接从GitHub中提取此包。composer install

我在github上创建了该存储库的分支,并进行了一些小的更改。有没有办法让作曲家在GitHub上拉动我的版本而不是原始版本?


答案 1

如果这是您的composer.json

"require": {
  "torophp/torophp": "dev-master"
}

并且您想要更改它并使用您的分叉,只需将存储库添加到以下位置即可:composer.json

"repositories": [
   {
     "type": "vcs",
     "url": "https://github.com/your-github-username/torophp"
   }
]

重要提示:请勿更换部件,必须继续使用!"require"torophp/torophp

添加部件后,运行一个(或),作曲家将下载您的分叉(即使它在操作过程中回显“安装 torophp/torophp”)。"repositories"composer updatecomposer.phar update


更新(18.09.2014):正如@efesaid在评论中提到的:

如果您的软件包发布在 packagist 上,则需要添加选项以强制从 VCS 安装。--prefer-source


注意:对于那些在从HTTP(S)源中提取时遇到问题的人(即您在尝试更新时得到的),您可以更改为使用git协议。为此,请按如下方式更改,然后再次运行。[RuntimeException] Failed to clone https://github.com/your-github-username/torophp, could not read packages from itcomposer.jsoncomposer.jsoncomposer update
"repositories": [
   {
     "type": "git",
     "url": "git://github.com/your-github-username/torophp.git"
   }
]

现在进入并运行以进行双重检查,以确定您是否使用了存储库的所需源。vendor/torophp/torophpgit remote -v

从那里,您可以将更改提交到您的分叉并从源()更新它。git pull origin master


更新:要在 GitHub 上使用私有仓库,您必须使用 git 协议,并且还必须为 git 客户端安装 SSH 密钥。

作曲家参考:从 VCS 存储库加载包


答案 2

推荐