54

我正在尝试让 Composer 下载 Behat/MinkSelenium2Driver 包的最新提交。那个特定的 repo 只有一个 master 分支。我已经尝试了所有我能想到的方法,包括删除文件并将其拉回,以使其正常工作,但它没有。

我如何让它拉入最新提交的文件,或者至少从我下面列出的提交中提取?

具体来说,我想得到这个提交: https ://github.com/Behat/MinkSelenium2Driver/commit/2e73d8134ec8526b6e742f05c146fec2d5e1b8d6

谢谢,帕特里克

4

4 回答 4

84

只有一种方法可以获取存储库的头部:

"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" }
于 2013-11-11T22:14:54.103 回答
21

只需指定主分支:

composer require --dev behat/mink-selenium2-driver:dev-master

PS: --dev 只是指定它是一个测试/开发要求,这可能是你想要的。

于 2017-11-14T07:28:25.490 回答
0

就我而言,@Sven 以上所有 03 建议的解决方案均无效。这是我的解决方案,以防有人仍在类似的情况下苦苦挣扎。

  • 如果你有它,删除现有的使用composer remove the_vendor/the_package_name

  • 如果您有权访问包 repo,请为其创建第一个标签(例如:0.1.0)

git tag --annotate 0.1.0 --message "Initial version 0.1.0" 
git push origin 0.1.0

注意:每次更新包 repo 时,请composer update the_vendor/the_package_name在主应用程序上添加一个新标签(例如:0.1.1)并制作以更新composer.lock

  • 如果您无权访问包 repo,请选择现有的标签版本(不是dev-master

  • 从主应用程序需要它 composer require the_vendor/the_package_name:^0.1

master

于 2020-08-10T17:57:58.133 回答
0

在我们的例子中,之前的答案都没有奏效。结果很简单:

Composer 仅使用 ROOT composer.json 的 repositories 属性

https://getcomposer.org/doc/04-schema.md#repositories

在我们的例子中,我们试图从 dev-master 获取我们的传递依赖项之一的最新提交。github 和 packagist 之间的钩子存在一些问题,导致它无法正常工作,我们花了几个小时才意识到我们正在编辑错误的 composer.json (我们库中带有依赖项的那个)而不是顶部我们正在安装的-level composer.json。

于 2015-11-24T22:23:45.243 回答