更改Composer包的git源

20
我使用这个composer.json文件通过Composer导入一个包:
{
    "require": {
        "torophp/torophp": "dev-master",
    },
}
当我运行composer install时,似乎是直接从GitHub拉取这个软件包。
我在github上创建了该存储库的分支,并进行了一些小更改。有没有办法让composer拉取我在GitHub上的版本而不是原始版本?

关于您在Github上的问题:没有问题 - 我会关闭它。 - eyecatchUp
在 Github 上查看我的答案,很可能能为你解决问题: https://github.com/composer/composer/issues/1551#issuecomment-12978227 - eyecatchUp
4
通知:我编辑了你的问题并删除了你的更新,因为最初的问题已经得到回答,即“如果composer能够拉取一个分支而不是原始的Github存储库”,而你遇到的问题与该初始问题无直接关联。这样做只会造成混淆。由于问题已在 Github 问题跟踪器上讨论过,为了使页面保持主题和减少混淆,应删除所有针对 OP 的更新。希望你理解。谢谢。 - eyecatchUp
1个回答

45
如果这是您的 composer.json 文件:
"require": {
  "torophp/torophp": "dev-master"
}

如果你想更改并使用自己的分支,只需按以下方式将你的存储库添加到composer.json中即可:
"repositories": [
   {
     "type": "vcs",
     "url": "https://github.com/your-github-username/torophp"
   }
]

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

添加"repositories"部分后,请运行composer update(或composer.phar update),然后Composer将下载您的分支(即使在操作期间它会输出“installing torophp/torophp”)。


更新(2014年9月18日):如@efesaid在评论中提到:

如果您的软件包发布在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 密钥。

Composer 参考文献: 从 VCS 代码库加载包


我已经这样做了,但是出现了错误,我已经在我的问题中更新了。我在这里做错了什么? - Svish
还尝试删除我的 vendorcomposer.lock 文件,然后运行 composer install 命令。但是出现了相同的错误 :/ - Svish
1
关于 GitHub 问题,这其实是正确的方法,只是目前必须使用 git:// 协议(或将某些文件复制到其他地方,但我不想这样做 :p)。无论哪种方式,都将此标记为答案并更新答案 :) - Svish
1
再次更新了答案。使用版本控制系统仍然是可取的方式并且有效。对于一些人来说它可能不起作用,但那是用户环境的个体问题。只有在正常方式无法工作的情况下才应该使用Git协议。认为这应该被包含在答案中。 - eyecatchUp
2
如果您的软件包已发布在Packagist上,您需要添加“--prefer-source”选项以强制从版本控制系统进行安装。 - cyb0k
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接