【发布时间】:2017-04-20 11:30:01
【问题描述】:
我能否设置 .gitignore 以允许 Composer 依赖项(供应商目录)存在于我的存储库中?
Composers 官方建议您“不应该”这样做。它提供了三个原因(https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md):
- 更新代码时 VCS 存储库大小和差异。
- 在您自己的 VCS 中复制所有依赖项的历史记录。
- 将通过 git 安装的依赖项添加到 git repo 会将它们显示为子模块。这是有问题的,因为它们不是真正的子模块,您会遇到问题。
这三个原因对我来说都不重要。此外,聪明的.gitignore 可能会消除原因三。
如果我有必要说明这个问题的动机,那么我的动机是:CocoaPods 就是这样做的,我喜欢 CocoaPods 的工作方式。
我究竟应该在.gitignore 中做什么来实现这一目标?
【问题讨论】:
-
删除供应商文件夹。并为受伤的世界做好准备。
-
只是版本锁定文件。在其上安装将提供 100% 理智的结果
-
呃
rm .gitignore。我错过了什么? -
@exussum 是对的。
-
@exussum,
composer install带有版本化的composer.lock“将提供 100% 合理的结果”……前提是其中定义的所有依赖项仍然可用并且可以检索。在某些情况下它仍然会失败,并且在某些情况下,人们可能实际上希望在其存储库中包含vendor/。
标签: php git composer-php gitignore