通过 Composer 处理分叉的 GitHub 存储库
Working on forked GitHub repository through Composer
希望我的问题不是太笼统,但是搜索也得不到合适的答案。
我有以下情况;我们正在开发一个项目,并通过 Composer 安装了某些依赖项。这些依赖项之一已经过时,需要进行一些修复和添加。我已经在 GitHub 上分叉了这个 repo 并将其添加到 Packagist。
要处理代码,我需要它 运行 在我的项目中并从那里编辑以查看我的更改是否有效,但它位于 vendor
文件夹中,它是通过以下方式安装的作曲家。
通过 GitHub 直接在 vendor 文件夹中克隆此项目将不起作用,因为不会为其编写自动加载程序。
到目前为止我所做的是在 vendor
文件夹中工作,然后将我的工作从那里复制并粘贴到 GitHub 文件夹并从那里推送,但在逻辑上非常棘手。
如何处理嵌入在项目中的作曲家库,以便您可以从此文件夹提交更改?
更改 composer.json
中的包约束以使用分支而不是标记版本 - 您可以将 dev-master
用于 master
分支或将 dev-my-branch
用于 my-branch
支线。您还可以配置分支 alias.
"require": {
"some-vendor/some-package": "dev-master",
}
添加一个 repository 指向你的分叉:
"repositories": [
{
"type": "git",
"url": "https://github.com/richard/some-package/"
},
]
运行 composer update
从您的 fork 安装新版本(或者 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.
希望我的问题不是太笼统,但是搜索也得不到合适的答案。
我有以下情况;我们正在开发一个项目,并通过 Composer 安装了某些依赖项。这些依赖项之一已经过时,需要进行一些修复和添加。我已经在 GitHub 上分叉了这个 repo 并将其添加到 Packagist。
要处理代码,我需要它 运行 在我的项目中并从那里编辑以查看我的更改是否有效,但它位于 vendor
文件夹中,它是通过以下方式安装的作曲家。
通过 GitHub 直接在 vendor 文件夹中克隆此项目将不起作用,因为不会为其编写自动加载程序。
到目前为止我所做的是在 vendor
文件夹中工作,然后将我的工作从那里复制并粘贴到 GitHub 文件夹并从那里推送,但在逻辑上非常棘手。
如何处理嵌入在项目中的作曲家库,以便您可以从此文件夹提交更改?
更改
composer.json
中的包约束以使用分支而不是标记版本 - 您可以将dev-master
用于master
分支或将dev-my-branch
用于my-branch
支线。您还可以配置分支 alias."require": { "some-vendor/some-package": "dev-master", }
添加一个 repository 指向你的分叉:
"repositories": [ { "type": "git", "url": "https://github.com/richard/some-package/" }, ]
运行
composer update
从您的 fork 安装新版本(或者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.