通过作曲家在分叉的GitHub存储库上工作



我希望我的问题不会太模糊,但无法通过搜索来获得适当的答案。

我有以下情况;我们正在研究一个项目,并通过作曲家安装了某些依赖关系。这些依赖项之一已经过时,需要一些修复和补充。我已经在github上分配了此仓库,并将其添加到Packagist。

要处理代码,我需要它在项目中运行并从那里进行编辑以查看我的更改是否有效,但是它在vendor文件夹中,通过作曲家安装了它。

直接通过供应商文件夹中的github克隆该项目不起作用,因为自动加载器不会为其编写。

到目前为止,我已经在vendor文件夹中工作了,然后将我的作品从那里复制和粘贴到GitHub文件夹并从那里推动,但是逻辑上很棘手。

一个人如何在嵌入项目中嵌入的作曲家库上工作,以使您可以从此文件夹进行更改?

  1. 更改composer.json中的包装约束以使用分支而不是标记版本 - 您可以将dev-master用于master分支或dev-my-branch用于my-branch分支。您也可以配置分支别名。

    "require": {
        "some-vendor/some-package": "dev-master",
    }
    
  2. 添加一个指向叉子的存储库:

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/richard/some-package/"
        },
    ]
    
  3. 运行composer update以从叉子安装新版本(或composer require "some-vendor/some-package:dev-master",如果您不想更新任何其他依赖关系(。

现在,您应该从vendor/some-vendor/some-package中的叉子克隆来克隆来源。您可以编辑这些文件并测试是否适合您的应用程序。完成工作后:

  1. 提交叉子上的更改并将它们推到github。
  2. 回到应用程序的根,运行composer updatecomposer require "some-vendor/some-package:dev-master"。这将更新您的composer.lock文件以使用叉子的最新版本。然后提交锁定并推动。

现在,如果某人将您的项目克隆(或只是拉更改(,它将获得新的composer.lock指向您的叉子,并用指定的提交哈希 - composer install始终直接从Github安装相同的叉子版本。

相关内容

  • 没有找到相关文章

最新更新