如何在GitHub上使用PR进行Laravel包的管理?

4
当我想在GitHub上为Laravel包进行拉取请求时,我目前是按以下方式进行的:
  1. 创建新的Laravel项目
  2. 要求并安装该包
  3. 从项目中的vendor文件夹中删除附加文件
  4. 分叉GitHub并将文件克隆到项目文件夹中
  5. 更改包并测试所有内容。
  6. 添加、提交、推送并执行拉取请求。
我觉得这有点繁琐 - 这实际上是正确的做法吗?
例如,如果我想为voyager包创建PR,我需要执行以下步骤1和2的命令。
>laravel new create-pr
>cd create-pr
>composer require tcg/voyager
>php artisan voyager:install

然后删除文件夹tcg/voyager,并将克隆的分支作为新文件夹tcg/voyager

如果我跳过composer require tcg/voyager,直接克隆分支到tcg/voyager中,我无法安装包,因为:

enter image description here


我使用 https://github.com/orchestral/testbench - Jeff Puckett
@JeffPuckett 但是您仍然需要在干净的Laravel应用程序中安装您的软件包以进行测试,对吗? - Adam
1个回答

5

首先,将官方仓库tcg/voyager fork到您的个人仓库iwasherefirst2/voyager中。然后:

1)创建一个新的Laravel项目;

2)将iwasherefirst2/voyager添加到composer.json中的仓库中。

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/iwasherefirst2/voyager.git"
    }
],

3)现在使用--pref-source安装tcg/voyager,这将自动将iwasherefirst2/voyager安装到vendor/tcg/voyager中,并设置git连接。

composer require tcg/voyager --prefer-source

现在您可以更改vendor/tcg/voyager内的文件并将其推送(它们将被推送到您的本地代码库`iwasherefirst2/voyager`)。

备注

1) 如果您想要将包文件夹放在应用程序根目录下的package/voyager中,则可以创建一个符号链接,如下所示:

ln -s vendor/tcg/voyager package

2) 要查看vendor中已修改的文件,可以调用composer status -v

$ composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
    M Dumper.php

3) 如果你运行composer update,如果它覆盖了任何文件,你将会收到一个警告。

$ composer update
Loading composer repositories with package information
Updating dependencies
  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
    The package has modified files:
    M Dumper.php
    Discard changes [y,n,v,s,?]?

非常感谢。这帮助了我很多。 - Flex Elektro Deimling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接