应该如何为 laravel 4 composer 包设置 git 子模块?
Posted
技术标签:
【中文标题】应该如何为 laravel 4 composer 包设置 git 子模块?【英文标题】:How should git submodules be set up for laravel 4 composer packages? 【发布时间】:2013-04-22 12:40:26 【问题描述】:我正在使用 laravel 4 构建一个应用程序,并希望部署到云服务器以进行进一步测试。我通常做的一般过程是本地>推送到github>克隆到服务器。
问题是我添加的几乎所有 laravel/composer 包都被忽略了,因为它们有自己的 git 存储库——我事先并没有真正考虑过这一点。
我了解子模块的概念,但我不太了解如何设置它们。我是否必须在父树中为我安装到应用程序的每个包添加一个子模块?有没有更自动化的方式来处理这个问题?
或者我完全关闭了,是否应该使用 composer 在服务器上更新这些?
【问题讨论】:
【参考方案1】:我认为在生产服务器上运行 composer 是一个严重的错误。见Getting started with chef, and running composer install on deploy
【讨论】:
【参考方案2】:使用 Composer 时,您根本不必关心 Git 子模块。
在您的本地计算机上,您只需在 composer.json
中指定您的依赖项,然后运行 composer install
。现在将您的composer.json
和 composer.lock
添加到您的项目存储库中,但排除.gitignore
中的vendor
目录。
现在要部署您的项目,只需在生产服务器上克隆或拉取您的项目存储库,然后再次运行 composer install
以安装所有项目依赖项。
当您对依赖项进行更改时,您会再次执行完全相同的过程,包括在本地和生产机器上使用 composer install
。
【讨论】:
【参考方案3】:似乎答案是作曲家: http://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
将 /vendor 添加到 .gitignore 文件,并在第一次克隆后运行 composer install。
【讨论】:
以上是关于应该如何为 laravel 4 composer 包设置 git 子模块?的主要内容,如果未能解决你的问题,请参考以下文章