我正在尝试让 Composer 使用我自己的库分支。
原文:https://github.com/KnpLabs/php-github-api 我的 fork :https://github.com/TransitScreen/php-github-api
我只需将其添加到 composer.json 即可使用 composer 安装原始版本:
{
"require": {
"knplabs/github-api": "~1.4"
}
}
我关注了the instructions在文档中,并将其更改为:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/TransitScreen/php-github-api.git"
}
],
"require": {
"knplabs/github-api": "dev-master"
},
"minimum-stabilitiy": "dev"
}
在我的分支存储库中,我同时创建了一个 master
和 dev-master
分支。我不清楚哪个是正确的,所以我都做了。我还尝试使用 "type": "vcs"
并从 URL 中删除 .git
。两者都不起作用。我运行 composer update
然后 composer.lock
文件仍然指向原始 repo URL,而不是我的。所以当我运行 composer install
时,我从来没有得到我的更改。
我做错了什么??
PS:我注意到我试图 fork 的库在它的 composer.json 文件中有这个:
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
}
我还没有找到任何文档来解释别名可能产生的影响。例如,我的 fork 存储库是否应该有一个 1.4.x
分支??
更新 1
顺便说一句,我知道我的一些配置一定是正确的,因为我在删除缓存后运行 composer update
时,有一刻我看到它正在读取我的(正确的)的 composer.json ) 存储库。但是之后 composer.lock 仍然指向原来的(不正确)。
更新 2
我也尝试过使用 composer update --prefer-source
但它仍然不起作用。
最佳答案
我找到问题了!
我在我的 fork 存储库中编辑了 composer.json
文件......它看起来像这样:
{
"name": "knplabs/github-api",
"type": "library",
"description": "GitHub API v3 client",
"homepage": "https://github.com/TransitScreen/php-github-api",
"keywords": ["github", "gh", "api", "gist"],
"license": "MIT",
但是我改成了这样:
{
"name": "transitscreen/php-github-api",
"type": "library",
"description": "GitHub API v3 client",
"homepage": "https://github.com/TransitScreen/php-github-api",
"keywords": ["github", "gh", "api", "gist"],
"license": "MIT",
我认为名称需要与新存储库相匹配,但我错了。当我将其改回原来的名称时,一切正常!
非常感谢@Tomas 提供了有用的故障排除提示。
我在任何地方都没有看到任何关于此的文档,所以我发布了对 Composer 文档的更新:https://github.com/composer/composer/pull/4329
关于php - Composer 不会使用我的 fork ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818032/