更改包的 Composer git 源

Posted

技术标签:

【中文标题】更改包的 Composer git 源【英文标题】:Change Composer git source for a package 【发布时间】:2013-01-16 05:06:21 【问题描述】:

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


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

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

我在 github 上创建了该 repo 的一个分支,并做了一些小改动。有没有办法让作曲家在 GitHub 上提取我的版本而不是原始版本?

【问题讨论】:

至于您在 Github 上提交的问题:没有问题 - 我会关闭它。 在 Github 上查看我的答案。这很可能会为您解决问题:github.com/composer/composer/issues/1551#issuecomment-12978227 仅供参考:我编辑了您的问题并删除了您的更新,因为最初的问题,如果作曲家能够拉一个叉子而不是原始的 Github 存储库,已经得到回答,并且您遇到的问题不是直接的与最初的问题有关。所以这只是令人困惑。并且由于无论如何都在 Github 问题跟踪器上讨论了该问题,因此应删除对 OP 的所有更新,以使此页面保持主题并减少混乱。希望你没事。干杯 【参考方案1】:

如果这是你的composer.json

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

如果您想更改它并改用您的 fork,只需将您的存储库添加到 composer.json,如下所示:

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

重要提示:不要更改"require"部分,它必须继续使用torophp/torophp

添加"repositories" 部分后,运行composer update(或composer.phar update),然后composer 将下载您的fork(即使它在操作期间回显“正在安装torophp/torophp” )。


更新 (18.09.2014): @efesaid 在 cmets 中提到:

如果你的包是在packagist上发布的,你需要添加 --prefer-source 强制从 VCS 安装的选项。


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

现在进入vendor/torophp/torophp 并运行git remote -v 以再次检查您是否使用了所需的存储库源。

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


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

作曲者参考:Loading a package from a VCS repository

【讨论】:

做到了,并得到了我更新问题的错误。我在这里做错了什么? 还尝试删除我的vendorcomposer.lock 并运行composer install。同样的错误:/ 所以关于 github 问题,这实际上是这样做的方法,只是你目前必须使用 git:// 协议(或将一些文件复制到其他地方,我不想要要做:p) 无论哪种方式,将其标记为答案并更新答案:) 再次更新了答案。使用 VCS 仍然是更可取的方式并且有效。它对某些人不起作用是用户环境的个别问题。并且您应该仅在 regular 方式不起作用的情况下使用 git 协议。认为应该包含在答案中。 如果你的包是在packagist上发布的,你需要添加--prefer-source选项来强制从VCS安装。

以上是关于更改包的 Composer git 源的主要内容,如果未能解决你的问题,请参考以下文章

composer学习总结

Composer常用的命令整理

composer引用本地git做为源库

composer基础知识科普

PHP资源列表

laravael 框架 compos的介绍和下载