我正在尝试让作曲家下载Behat/MinkSelenium2Driver包的最新提交。该特定存储库只有一个主分支。我已经尝试了我能想到的所有方法,包括删除文件并让它将它们拉回去,让它工作,但它没有。
我如何让它拉入最新提交的文件,或者至少从下面列出的提交中提取文件?
具体来说,我想得到这个提交:https://github.com/Behat/MinkSelenium2Driver/commit/2e73d8134ec8526b6e742f05c146fec2d5e1b8d6
谢谢帕特里克
只有一种方法可以抓取存储库的头部:
"require": { "behat/mink-selenium2-driver" : "dev-master" }
"minimum-stability": "dev"
哦,好吧,至少有两种方式:
"require": { "behat/mink-selenium2-driver" : "dev-master as 1.1.x-dev" }
"minimum-stability": "dev"
可能至少有三种方式:
"require": { "behat/mink-selenium2-driver" : "dev-master#2e73d8134ec8526b6e742f05c146fec2d5e1b8d6" }
"minimum-stability": "dev"
因为该存储库实际上将主分支别名为 1.1.x-dev,所以这也可以在不影响所有其他软件包的最低稳定性的情况下工作:
"require": { "behat/mink-selenium2-driver" : "1.1.*@dev" }
只需指定主分支:
composer require --dev behat/mink-selenium2-driver:dev-master
PS:--dev只是为了指定它是一个测试/开发要求,这可能是你想要的。
就我而言,@Sven上述 03 个建议的解决方案都不起作用。这是我的解决方案,以防有人仍在类似的环境中挣扎。
-
删除现有使用情况(如果有
composer remove the_vendor/the_package_name
-
如果您有权访问包存储库,请为其创建第一个标记(例如:0.1.0)
git tag --annotate 0.1.0 --message "Initial version 0.1.0"
git push origin 0.1.0
注:每次更新包存储库时,请归属一个新标记(例如:0.1.1)并在主应用程序上composer update the_vendor/the_package_name
以更新composer.lock
如果无权访问包存储库,请选择现有标记版本(不
dev-master
)从主应用需要它
composer require the_vendor/the_package_name:^0.1
与master
相比
在我们的例子中,以前的答案都不起作用。原来很简单:
作曲家仅使用 ROOT composer.json 的存储库属性
https://getcomposer.org/doc/04-schema.md#repositories
在我们的例子中,我们试图从我们的一个传递依赖项的dev-master那里获取最新的提交。github和packagist之间的钩子存在一些问题,阻止它正常工作,我们花了几个小时才意识到我们编辑了错误的composer.json(我们库中带有依赖项的那个)而不是我们正在安装的顶级composer.json。