You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub上为Laravel包提交PR?现有流程是否正确?

为Laravel包提交Pull Request的流程疑问

我目前在GitHub上给Laravel包提交PR的流程是这样的:

  • 创建新的Laravel项目
  • 通过Composer安装目标包
  • 删除项目vendor目录里的该包文件
  • Fork目标包的GitHub仓库,然后克隆到项目对应目录
  • 修改包代码并完成测试
  • 执行git add、git commit、git push操作后提交PR

我感觉这个步骤有点繁琐,想确认这是不是正确的操作方式?

举个例子,如果要给voyager包提交PR,我现在会执行这些命令:

laravel new create-pr
cd create-pr
composer require tcg/voyager
php artisan voyager:install

之后我会删除vendor/tcg/voyager文件夹,再把自己fork的仓库克隆成新的vendor/tcg/voyager文件夹。如果跳过composer require tcg/voyager这一步直接克隆fork仓库到对应目录,我就没法完成包的安装,因为缺少必要的配置和依赖处理。


其实你这个流程是可行但确实可以优化的,毕竟每次删vendor里的包再克隆有点折腾。给你分享两个更高效的方式:

方法1:用Composer自定义仓库指向你的Fork(最推荐)

这种方式完全不需要手动操作vendor目录,还能让Composer自动处理依赖和加载:

  1. 先把目标包的仓库Fork到自己的GitHub账号下
  2. 创建新的Laravel项目(或用现有项目)
  3. 在项目根目录的composer.json里添加自定义仓库配置:
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/你的GitHub用户名/voyager.git"
    }
]
  1. 执行composer require tcg/voyager:dev-你的分支名(比如你在fork后的feature/fix-bug分支开发,就写dev-feature/fix-bug)
  2. 现在vendor/tcg/voyager里的代码就是你fork仓库的内容了,直接在这里修改代码、完成测试后,执行git add、git commit、git push推送到你的fork仓库,之后就能提交PR了。

这种方式完美解决了你说的“跳过require无法完成安装”的问题,因为Composer会自动处理所有依赖配置和初始化流程。

方法2:本地符号链接(适合频繁维护包的场景)

如果你经常需要修改这个包,可以把fork的仓库单独克隆到本地,再用符号链接关联到Laravel项目:

  1. Fork并克隆目标包到本地任意非项目目录,比如~/dev/voyager
  2. 创建Laravel项目,执行composer require tcg/voyager完成基础安装
  3. 删除vendor/tcg/voyager目录
  4. 执行符号链接命令:
    • Windows(PowerShell):New-Item -ItemType SymbolicLink -Path vendor/tcg/voyager -Target ~/dev/voyager
    • macOS/Linux:ln -s ~/dev/voyager vendor/tcg/voyager
  5. 之后你在~/dev/voyager里修改代码,Laravel项目会实时加载改动内容,测试完成后直接在这个独立目录提交代码到fork仓库,再提交PR即可。

这种方式把包代码和Laravel项目分离,不用每次都在vendor里操作,适合长期维护某个包的情况。

总的来说,你原来的流程是正确的,但上述两种方法能帮你省去重复删除、克隆的繁琐步骤,效率会高很多。


内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:14:44