Git - 供应商文件夹修改 - .gitignore?

3

我有一个安装了Laravel的项目,其中修改了vendor文件夹中的一些Laravel核心文件(主要是与邮件相关的文件)。

我希望每个克隆这个仓库的人都能拥有相同的更改。正确的处理方式是什么?

  • 完全从.gitignore中删除vendor文件夹并把所有文件都进行索引?
  • 保留.gitignore中的vendor文件夹,并添加特定文件的例外?(但这样将会在协作者运行composer install时覆盖这些文件,对吗?)

8
不要覆盖供应商文件,而是在您的项目中扩展这些文件并覆盖其中的功能。这样,供应商文件将保持不变,并且每个人都将拥有与您相同的配置。 - Shantanu
1个回答

6
  1. 复制 Laravel 代码库:https://help.github.com/articles/fork-a-repo/

  2. 在复制的代码库中创建一个新分支,分支名称必须以dev-为前缀,例如dev-bugfix

  3. 在复制的代码库中进行更改,提交更改并将其推送到dev-bugfix分支。

  4. 将复制的代码库包含在您的composer.json中:

{
    "repositories": [{
        "type": "package",
        "package": {
            "version": "dev-bugfix",
            "name": "laravel/framework",
            "source": {
                "url": "https://github.com/<your_github_username>/framework.git",
                "type": "git",
                "reference": "dev-bugfix"
            }
        }
    }],
    "require": {
        "laravel/framework": "dev-bugfix"
    }
}

在此之后,您可以随时拉取自定义更改,而无需将其提交到您的特定项目中。

了解有关分叉和加载软件包的更多信息,请单击此处


附注:修改供应商软件包文件是一种不好的做法,请尽量避免。


我按照您的指示操作了(克隆了 Laravel-Framework 仓库,进行了更改,推送到 dev-bugfix 分支,编辑了 composer.json 文件,删除了 vendor 文件夹并使用了 composer install),但不幸的是,我的更改没有出现。安装的是默认的 Laravel 代码。 - Basaa
啊,我忘记更新Composer了。现在在克隆dev-bugfix之后,它会给我以下错误:PHP artisan clear-compiled脚本处理post-install-cmd事件时返回错误[RuntimeException] 错误输出:PHP致命错误:在/home/pepper/pepper/bootstrap/autoload.php的第46行找不到类'Patchwork\Utf8\Bootup' - Basaa
@Basaa,这是另一个错误,你应该创建另一个问题来解决它 :) - Limon Monte
已完成:https://dev59.com/l5Lea4cB1Zd3GeqP5rNu - Basaa

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