Composer php 通过Composer处理分叉GitHub存储库
我希望我的问题不是太含糊,但通过搜索无法得到正确的答案 我有以下情况,;我们正在处理一个项目,并通过Composer安装了某些依赖项。其中一个依赖项已经过时,需要进行一些修复和添加。我已经在GitHub上完成了这一回购协议,并将其添加到Packagist中 要处理代码,我需要它在我的项目中运行并从那里编辑,以查看我的更改是否有效,但它位于Composer php 通过Composer处理分叉GitHub存储库,composer-php,packagist,Composer Php,Packagist,我希望我的问题不是太含糊,但通过搜索无法得到正确的答案 我有以下情况,;我们正在处理一个项目,并通过Composer安装了某些依赖项。其中一个依赖项已经过时,需要进行一些修复和添加。我已经在GitHub上完成了这一回购协议,并将其添加到Packagist中 要处理代码,我需要它在我的项目中运行并从那里编辑,以查看我的更改是否有效,但它位于供应商文件夹中,通过composer安装 通过GitHub直接在供应商文件夹中克隆此项目将不起作用,因为不会为其编写自动加载程序 到目前为止,我所做的是在供应商
供应商
文件夹中,通过composer安装
通过GitHub直接在供应商文件夹中克隆此项目将不起作用,因为不会为其编写自动加载程序
到目前为止,我所做的是在供应商
文件夹中工作,然后将我的工作从那里复制粘贴到GitHub文件夹并从那里推送,但在逻辑上相当棘手
如何在嵌入到项目中的composer库上工作,从而可以从该文件夹提交更改
composer.json
中的包约束更改为使用分支而不是标记版本-您可以将dev master
用于master
分支或dev my branch
用于my branch
分支。您还可以配置分支
"repositories": [
{
"type": "git",
"url": "https://github.com/richard/some-package/"
},
]
composer update
从您的fork安装新版本(或者composer需要“某个供应商/某个软件包:dev master”
如果您不想更新任何其他依赖项)vendor/some vendor/some package
中从fork克隆源代码。您可以编辑这些文件并测试更改是否适合您的应用程序。完成工作后:
composer update
或composer require“某个供应商/某个软件包:dev master”
。这将更新您的composer.lock
文件以使用最新版本的fork。然后提交锁中的更改并按下现在,如果有人克隆您的项目(或只是拉取更改),它将获得新的
composer.lock
使用指定的提交哈希指向您的fork-composer install
应该始终直接从GitHub安装相同版本的fork。我认为您没有回答主要问题;如何在我的项目中获得repo(并将其保存在composer.json中),以便我可以积极地处理它,并且我的更改也可以提交到GitHub。目前,我正在将文件内容从vendor
文件夹复制粘贴到单独签出的GitHub项目。我知道如何通过composer.json中的repositories
获取我的fork版本。这应该可以将您的fork直接克隆到vendor
目录,这样您就可以从那里编辑它了。从短期来看,这是可行的,但是我需要将包放在composer.json
中,这样我也可以在登台服务器上进行测试(并确保在发布到生产环境之前不会忘记添加它)。对于composer和多个环境,此解决方案实际上不可行。。“没有更好的办法吗?”理查德,恐怕我不明白问题出在哪里。这种方法将您的fork包添加到composer.json
中,并将使用过的版本保存在composer.lock
中,因此在每个环境中,您都将获得相同版本的fork包。我在多个环境中以这种方式工作,没有任何问题。请更清楚地表达您的担忧;是的,我可以通过composer克隆我的repo,但它只是repo的“签出”版本。然而,回购协议尚未敲定;我仍然在工作,需要能够直接编辑代码,并测试它是否在我的项目中工作。当通过composer检出时;GitHub应用程序不会跟踪我在那里所做的更改,因为它不是GitHub“文件夹”,而是composer文件夹。它是一个“WIP”文件夹,但也需要在Composer中。
"repositories": [
{
"type": "git",
"url": "https://github.com/richard/some-package/"
},
]