【问题标题】:Git - Vendor folder modifications - .gitignore?Git - 供应商文件夹修改 - .gitignore?
【发布时间】:2016-04-09 07:47:51
【问题描述】:

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

我希望克隆 repo 的每个人都明显有相同的变化。正确的处理方法是什么?

  • 从 .gitignore 中完全删除 vendor 文件夹并将其全部编入索引?
  • 将供应商文件夹保留在 .gitignore 中并为我修改过的特定文件添加例外? (但是当合作者安装 composer 时,这会覆盖这些文件,对吧?)

【问题讨论】:

  • 您可以扩展这些文件并覆盖项目中的函数,而不是覆盖供应商文件。这样,供应商文件就不会受到影响,并且每个文件都将具有与您相同的配置。

标签: git laravel composer-php gitignore vendor


【解决方案1】:
  1. Fork Laravel 仓库:https://help.github.com/articles/fork-a-repo/

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

  3. 在分叉的仓库中进行更改,提交它们,将它们推送到dev-bugfix 分支。

  4. 在您的 composer.json 中包含分叉的 repo:

{
    "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"
    }
}

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

在此处阅读有关分叉和加载包的更多信息:https://getcomposer.org/doc/05-repositories.md#vcs


附言。修改供应商包文件是一种不好的做法,以后尽量不要这样做。

【讨论】:

  • 我按照您的说明进行操作(克隆 Laravel-Framework 存储库,进行了更改,推送到 dev-bugfix 分支,编辑了 composer.json,删除了供应商文件夹并使用了 composer 安装)但遗憾的是由于某种原因我的更改没有不出现。这是安装的默认 Laravel 代码。
  • 啊,我忘记作曲家更新了。现在它在克隆 dev-bugfix 后给了我以下错误:Script php artisan clear-compiled handling the post-install-cmd event returned with an error [RuntimeException] 错误输出:PHP 致命错误:类 'Patchwork\Utf8\Bootup' not在第 46 行的 /home/pepper/pepper/boots trap/autoload.php 中找到
  • @Basaa 这是另一个错误,你应该为它创建另一个问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 2021-08-18
  • 2017-04-20
  • 1970-01-01
  • 2015-08-31
  • 2019-06-15
  • 1970-01-01
相关资源
最近更新 更多