Composer创建项目。指向特定分支

时间:2016-03-28 17:37:31

标签: php git composer-php

我创建了一个Laravel仓库的分支,对它进行了一些更改,并将作曲家文件中的名称重命名为votemike / laravel。我现在想基于这个仓库创建一个新项目,所以我打电话给:

composer create-project --prefer-dist votemike/laravel --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing

然而,我的终端然后弹出说Reading composer.json of votemike/laravel (v5.2.23)逐渐递减。结果项目似乎是一个正常的Laravel项目,没有我的更改。 然后我尝试了:

composer create-project --prefer-dist votemike/laravel:master --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing

但这似乎也不起作用。

任何人都可以帮我解决我需要运行的命令吗?我假设我的电脑不应该读取每个版本的作曲家文件。命令可以简化吗?

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:5)

更新

由于这是一个自定义的Composer项目,我想知道您是否可以使用我撰写博文的自定义创建项目脚本:Composer create project script

您只需将其放在项目的根目录下,编辑它以匹配并运行它 - 它将为您创建一个项目。

我用它来测试我自己的Composer项目,我认为它可以让你简单地创建你的自定义Laravel项目,而不必与Composer争夺版本。

https://gist.github.com/jacmoe/e9e8ed5fd45affb893a8

编辑:

您需要做的就是编辑:

BRANCH_NAME=${1:-master}
DEST_DIR=${2:-~/Desktop/newapp}
PACKAGE_NAME=vendor/package

您可以保留第一个(BRANCH_NAME),但请更改DEST_DIRPACKAGE_NAME

PACKAGE_NAME 必须匹配已修改的Laravel源目录的composer.json的包名称。

注意

你从你的Laravel分支的本地克隆副本中使用它 - 它在本地工作 - 它不会尝试在Github或Packagist上找到任何东西。它使用您所在的目录(工作目录)并使用它来创建项目 - 您可以选择脚本创建它的位置。

原始答案:

脱离我的头顶:

composer create-project --prefer-dist --stability=dev votemike/laravel

或者,如果这不起作用,请尝试:

composer create-project --prefer-dist --stability=dev votemike/laravel:dev-master

或者,代替dev-master,使用@dev - 或dev-branch ...

第一个命令应该这样做。

您的克隆项目是否有任何标签?如果没有,那就解释了为什么Composer正在采取行动。告诉它使用dev-master将解决这个问题,因为默认情况下,Composer只会拉取版本(major.minor.revision方案后面的标签)。

编辑:

在我的一个项目中,我正在使用包的主分支,使用composer.json中的以下条目:

"jacmoe/yii2-tale-jade": "dev-master",

如何将您的包装到您的composer.json由您自己决定 - 手动或使用正确的版本(如dev-master

这要求您尝试要求的项目的 composer.json 不使用版本字段 - 如果确实有,请删除它。