是否应该将 vendor 目录中的依赖项提交到版本控制系统?#
一般建议是 **不要**。vendor 目录(或依赖项安装的任何位置)应该添加到 .gitignore
/svn:ignore
等中。
最佳实践是让所有开发人员使用 Composer 安装依赖项。同样,构建服务器、CI、部署工具等应该被调整为在项目引导阶段运行 Composer。
虽然在某些环境中提交它可能很诱人,但这会导致一些问题
- 当您更新代码时,VCS 存储库会变得很大,差异也会很大。
- 您自己的 VCS 中会重复所有依赖项的历史记录。
- 将通过 git 安装的依赖项添加到 git 仓库中会将它们显示为子模块。这存在问题,因为它们不是真正的子模块,您会遇到问题。
如果您确实觉得必须这样做,您有几个选择
- 限制自己安装标记的版本(没有开发版本),这样您只会获得压缩的安装文件,并避免使用 git "子模块" 遇到的问题。
- 使用 --prefer-dist 或将
preferred-install
设置为dist
在您的 配置文件 中。 - 在安装后删除每个依赖项的
.git
目录,然后您可以将它们添加到您的 git 仓库中。您可以在 ZSH 中使用rm -rf vendor/**/.git
或在 Bash 中使用find vendor/ -type d -name ".git" -exec rm -rf {} \;
来完成。但这意味着您必须在运行composer update
之前从磁盘中删除这些依赖项。 - 添加一个 .gitignore 规则 (
/vendor/**/.git
) 来忽略所有 vendor.git
文件夹。这种方法不需要您在运行composer update
之前从磁盘中删除依赖项。
发现错别字了吗?文档中有什么错误吗?分叉并编辑 它!