【发布时间】:2017-06-07 08:41:36
【问题描述】:
我在使用 composer 安装组件后将所有代码推送到 GitHub 时遇到问题。这是当前的设置:
- GitHub 存储库已创建。
- 在本地和项目文件上克隆了存储库。
- 有一个遥控器叫做“origin”。
- 使用“composer require”添加的组件。组件已成功安装到项目子文件夹。
- Composer 创建了一个带有两个遥控器的 git 子模块(在此子文件夹中)。 (a) 指向组件作者 github url 的“origin”。 (b) "composer" 指向同一个 url 并且没有推送 url。
- 项目已成功推送到 GitHub,但未推送包含组件文件的 git 子模块。
- 如果我尝试将组件推送到项目“原点”,我会收到错误消息“更新被拒绝,因为远程包含您在本地没有的工作”。
如何将这个 git 子模块组件代码放入我的 GitHub 存储库? GitHub中的文件夹是空的。
【问题讨论】:
-
我很困惑。为什么你想让
composer require'd 组件出现在 Github 上?除了composer.json中的一行和composer.lock中的几行之外,它不应成为您项目的一部分。 -
该组件需要在github中部署到服务器。但是,可以将部署任务更新为运行“composer install”,而不是将 /vendor 文件添加到存储库。
-
是的,你应该这样做。
vendor不应签入。 -
开发社区似乎对供应商文件夹是否应该在存储库中存在分歧。赞成和反对都有合理的论据。
-
我从来没有遇到过任何主要的 PHP 开发社区支持签入
vendor。默认情况下,.gitignore在Symfony、Laravel、CodeIgniter、Slim、Kohana 等中将其明确排除在版本控制之外。