如何在 GitHub 上使用 Laravel 包的 PR?

Ada*_*dam 4 php git github laravel-5

当我想在 GitHub 上对 Laravel 包发出拉取请求时,我会按以下方式进行操作:

  1. 创建新的 Laravel 项目
  2. 需要并安装包
  3. 从供应商文件夹中的项目中删除附加文件
  4. Fork GitHub 并将文件克隆到项目文件夹中
  5. 更改打包并测试所有内容。
  6. 添加、提交、推送和执行拉取请求。

我觉得这有点麻烦——这真的是正确的做法吗?

例如,如果我想为voyager 包创建 PR ,我必须对步骤 1. 和 2 执行以下命令。

>laravel new create-pr
>cd create-pr
>composer require tcg/voyager
>php artisan voyager:install
Run Code Online (Sandbox Code Playgroud)

然后删除该文件夹tcg/voyager并将分叉克隆为新文件夹tcg/voyager

如果我跳过composer require tcg/voyager并直接将分叉克隆到tcg/voyager我无法安装该软件包,因为

在此输入图像描述

Ada*_*dam 5

首先,将官方存储库分叉tcg/voyager到您的个人存储库中iwasherefirst2/voyager。然后

1)创建一个新的Laravel项目

2)将存储库添加iwasherefirst2/voyager到composer.json:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/iwasherefirst2/voyager.git"
    }
],
Run Code Online (Sandbox Code Playgroud)

3) 现在安装tcg/voyager--pref-source自动安装 iwasherefirst2/voyagervendor/tcg/voyager设置 git 连接。

composer require tcg/voyager --prefer-source
Run Code Online (Sandbox Code Playgroud)

现在您可以更改其中的文件vendor/tcg/voyager并推送它们(它们将被推送到您的本地存储库“iwasherefirst2/voyager”)。

评论

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

ln -s vendor/tcg/voyager package
Run Code Online (Sandbox Code Playgroud)

2)要查看供应商中修改的文件,您可以调用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
Run Code Online (Sandbox Code Playgroud)

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,?]?
Run Code Online (Sandbox Code Playgroud)