【问题标题】:Which files/directories to ignore in a Laravel 4 project when using version control?使用版本控制时,Laravel 4 项目中要忽略哪些文件/目录?
【发布时间】:2013-06-04 21:23:18
【问题描述】:

我有一个Laravel4 项目,我想知道在使用Git、Mercury 或SVN 等版本控制软件时应该忽略哪些文件?

我的项目结构如下图所示。

我对@9​​87654322@ 还很陌生,所以我不太清楚回购的内容是什么。如果有人可以发布他们的.gitignore 文件或他们的 SVN 忽略属性,这可能会很方便。

【问题讨论】:

  • 我认为您可以坚持使用框架提供的默认 .gitignore。默认情况下,它将忽略供应商目录,以及作曲家的东西和其他一些东西。我还将整个 app/storage 文件夹添加到 .gitignore,只是因为我不想对会话、编译视图、缓存、日志等进行版本控制。
  • 另一个可以忽略的好消息是workbench,如果你使用它的话。该目录只能用于开发包。
  • @thinkers:如果我克隆你的存储库,我最终会没有 app/storage 目录。在某些情况下我可能想要那个,而在其他情况下我可能不想要那个。我不想要缓存、日志等,但我想我确实想要 Laravel 项目的 repo 中的 app/storage 目录本身。
  • @MikeSherrill'Catcall' 相反,您可以将 app/storage//* 添加到您的 .gitignore 中,以便为每个要进行版本控制的文件夹,然后在每个文件夹中添加一个 .gitkeep 文件.
  • 您不再需要将存储目录添加到 /.gitignore,因为这些目录中已经存在 .gitignore 文件。 (从 Laravel 4.0.8 开始)

标签: version-control laravel laravel-4


【解决方案1】:

作为参考,可以在here找到.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)。

【讨论】:

  • "将应用程序的 composer.lock(连同 composer.json)提交到版本控制中。" -- getcomposer.org/doc/…
  • storage/* 文件夹怎么样?
  • 我相信他们已经被忽略了。 app/storage/ 中的每个目录都包含一个 .gitignore 文件来处理它。
  • /vendor 呢?为什么会在忽略文件中?
  • 因此您不必将其添加到版本控制中。 Composer 可以为您将依赖项安装到您的生产服务器上。 (composer install)。请注意composer update 将更新到最新的依赖项并下载它们,而composer install 将根据composer.lock 中的项目进行安装。您应该将composer.lock 保留在版本控制中,并在生产中使用$ composer install,以确保您获得所需的软件版本。 (运行composer update 也会更新composer.lock)。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    Laravel 在 GitHub 上发布了他们的 .gitignore,可以在 here 找到。

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

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

    【讨论】:

    【解决方案4】:

    GitHub 有一个几乎所有类型项目的建议 .gitignore 文件存储库:http://github.com/github/gitignore

    或者,您可以使用这个方便且非常有用的在线工具搜索您的项目:http://www.gitignore.io

    【讨论】:

      【解决方案5】:

      注意配置文件:

      app/config/app.php
      

      其中有一个加密密钥,不能很好地提交到存储库。或者,至少,该文件需要在生产环境中被覆盖。

      【讨论】:

      • 该密钥(或任何其他敏感信息)可以在生产或任何其他环境中被覆盖,而无需触及app/config/app.php。只需在项目的根目录中创建一个点文件:.env.production.php,Laravel 将覆盖任何配置文件中定义的内容。文档:laravel.com/docs/4.2/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多