在使用版本控制时,在 Laravel 4 项目中应忽略哪些文件/目录?

42
我有一个 Laravel 4 项目,我想知道在使用版本控制软件如 Git、Mercury 或 SVN 时应该忽略哪些文件?
我的项目结构如下所示。

enter image description here

我对Composer还比较陌生,不太清楚应该把什么放到存储库中,什么不应该。如果有人可以贴出他们的.gitignore文件或者他们的SVN ignore属性,那会很方便。


7
我认为你可以使用框架提供的默认.gitignore文件。默认情况下,它将忽略vendor目录、composer相关文件以及其他一些文件。我还将整个app/storage文件夹添加到.gitignore中,只是因为我不想对会话、编译视图、缓存、日志等进行版本控制。 - Antonio Frignani
4
如果你使用 workbench,可以忽略它。这个目录应该只用于开发软件包。 - Jason Lewis
@thinkers:如果我克隆你的代码库,我将没有app/storage目录。在某些情况下,我可能需要它,而在其他情况下则不需要。我不需要缓存、日志等,但我认为在Laravel项目中,我确实需要将app/storage目录本身包含在代码库中。 - Mike Sherrill 'Cat Recall'
@MikeSherrill'Catcall',你可以将app/storage/<folder>/*添加到.gitignore中,以便为您想要进行版本控制的每个文件夹添加一个.gitkeep文件。 - Antonio Frignani
@thinkers:我认为这可能是正确的方法,但我还没有时间尝试。谢谢。 - Mike Sherrill 'Cat Recall'
5
自 Laravel 4.0.8 起,你不再需要将存储目录添加到 /.gitignore 中,因为这些目录中已经有 .gitignore 文件。 - zgosalvez
5个回答

34
参考文献,.gitignore 文件可以在这里找到:
/bootstrap/compiled.php
/vendor
composer.phar
composer.lock  # Remove this one after you create a project
.env.*.php
.env.php
.DS_Store
Thumbs.db

如下评论所述,您可能希望在项目中提交composer.lock。Laravel默认忽略它,因此laravel / laravel包的作者不会无意中向您施加软件包。

您的项目应包括composer.lock文件,以便在生产环境中正确安装稳定版本的软件包(通过composer install而不是composer update)。


7
将应用程序的 composer.lock(连同 composer.json)提交到版本控制中。 - Joaquín L. Robles
4
存储/***文件夹怎么样? - tux
4
我认为它们已经被忽略了。app/storage/ 目录中的每个子目录都包含一个 .gitignore 文件来处理这个问题。 - fideloper
2
/vendor是什么情况?为什么要将其放入忽略文件中? - TikaL13
因此,您不必将其不必要地添加到版本控制中。Composer可以为您安装生产服务器上的依赖项(composer install)。请注意,composer update将更新到最新的依赖项并下载它们,而composer install将根据composer.lock中的项目进行安装。您应该将composer.lock保存在版本控制中,并在生产中使用$ composer install以确保获得您期望的软件版本。(运行composer update也会更新composer.lock)。 - fideloper
显示剩余5条评论

2
请注意配置文件:
app/config/app.php

这个文件里面含有加密密钥,最好不要提交到代码库中。或者至少在生产环境中需要覆盖掉该文件。


1
那个密钥(或任何其他敏感信息)可以在生产环境或任何其他环境中被覆盖,而无需触及 app/config/app.php。只需在项目根目录下创建一个点文件:.env.production.php,Laravel 就会覆盖任何配置文件中定义的内容。文档:http://laravel.com/docs/4.2/configuration#protecting-sensitive-configuration - Rubens Mariuzzo

1

Laravel已经在GitHub上发布了他们的.gitignore文件,可以在这里找到。

截至今天,它看起来是这样的:

/bootstrap/compiled.php
/vendor
composer.phar
composer.lock
.env.*.php
.env.php
.DS_Store
Thumbs.db

3
应该从.gitignore文件中移除composer.lock(https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file)。 - Jake Wilson

1

您可能还想查看Laravel文档这里这里。这讨论了如何为不同环境设置不同的Laravel配置并保护敏感信息。所有.env.local.php类型的文件都不应包含在版本控制中。请注意,.env.*.php.env.php已添加到默认的Laravel .gitignore文件中。您可以在这里看到它。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接