我希望我的问题不会太模糊,但无法通过搜索来获得适当的答案。
我有以下情况;我们正在研究一个项目,并通过作曲家安装了某些依赖关系。这些依赖项之一已经过时,需要一些修复和补充。我已经在github上分配了此仓库,并将其添加到Packagist。
要处理代码,我需要它在项目中运行并从那里进行编辑以查看我的更改是否有效,但是它在vendor
文件夹中,通过作曲家安装了它。
直接通过供应商文件夹中的github克隆该项目不起作用,因为自动加载器不会为其编写。
到目前为止,我已经在vendor
文件夹中工作了,然后将我的作品从那里复制和粘贴到GitHub文件夹并从那里推动,但是逻辑上很棘手。
一个人如何在嵌入项目中嵌入的作曲家库上工作,以使您可以从此文件夹进行更改?
-
更改
composer.json
中的包装约束以使用分支而不是标记版本 - 您可以将dev-master
用于master
分支或dev-my-branch
用于my-branch
分支。您也可以配置分支别名。"require": { "some-vendor/some-package": "dev-master", }
-
添加一个指向叉子的存储库:
"repositories": [ { "type": "git", "url": "https://github.com/richard/some-package/" }, ]
-
运行
composer update
以从叉子安装新版本(或composer require "some-vendor/some-package:dev-master"
,如果您不想更新任何其他依赖关系(。
现在,您应该从vendor/some-vendor/some-package
中的叉子克隆来克隆来源。您可以编辑这些文件并测试是否适合您的应用程序。完成工作后:
- 提交叉子上的更改并将它们推到github。
- 回到应用程序的根,运行
composer update
或composer require "some-vendor/some-package:dev-master"
。这将更新您的composer.lock
文件以使用叉子的最新版本。然后提交锁定并推动。
现在,如果某人将您的项目克隆(或只是拉更改(,它将获得新的composer.lock
指向您的叉子,并用指定的提交哈希 - composer install
始终直接从Github安装相同的叉子版本。