Git - 供应商文件夹修改 - .gitignore?
Posted
技术标签:
【中文标题】Git - 供应商文件夹修改 - .gitignore?【英文标题】:Git - Vendor folder modifications - .gitignore? 【发布时间】:2016-04-09 07:47:51 【问题描述】:所以我有一个 Laravel 安装,其中我修改了 vendor 文件夹中的几个 Laravel 核心文件(主要是与邮件相关的)。
我希望克隆 repo 的每个人都明显有相同的变化。正确的处理方法是什么?
从 .gitignore 中完全删除 vendor 文件夹并将其全部编入索引? 将供应商文件夹保留在 .gitignore 中并为我修改过的特定文件添加例外? (但是当合作者安装 composer 时,这会覆盖这些文件,对吧?)【问题讨论】:
您可以扩展这些文件并覆盖项目中的函数,而不是覆盖供应商文件。这样,供应商文件就不会受到影响,并且每个文件都将具有与您相同的配置。 【参考方案1】:Fork Laravel 仓库:https://help.github.com/articles/fork-a-repo/
在分叉的仓库中创建一个新分支,分支名称必须以dev-
为前缀,例如dev-bugfix
在分叉的仓库中进行更改,提交它们,将它们推送到dev-bugfix
分支。
在您的 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 这是另一个错误,你应该为它创建另一个问题:) 完成:***.com/questions/34616294/…以上是关于Git - 供应商文件夹修改 - .gitignore?的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2 - 创建自己的供应商包 - 项目和 git 策略
Symfony2,AWS Beanstalk:如何将供应商作为文件而不是 git-submodules 推送到 repo