我应该将Laravel供应商目录添加到.gitignore吗?

Ahm*_*aki 5 git gitignore laravel composer-php

我在.gitignore文件中有我的供应商目录.每次运行时composer update,git都无法跟踪vendor目录更新和更改,因此我无法支持这些更改!

我的问题是:composer update有需要之后,应用程序是否可能崩溃或遇到错误git reset

如果可能,从供应商目录中删除是不是更好.gitignore?也许这个问题有其他解决方案吗?(如果这是一个问题!)

cee*_*yoz 8

Composer composer.lock为此提供了文件.

安装新软件包,执行composer update等导致软件包更改的软件包将编写已安装软件包的确切版本composer.lock.您应该将此文件包含在存储库的版本化文件中.

您可以运行composer install以自动安装包的完整程序包版本composer.lock.由于它将被版本化,您可以随时将其回滚到工作版本并composer install再次运行.

旁注:composer dump-autoload不应该做任何破坏性的改变vendor.


Ale*_*nin 6

vendor目录是.gitignore默认情况下.这是一个好主意,因为composer它将composer.json随时在任何机器上安装它将为您找到的所有软件包.如果您对某个软件包的新版本有问题,只需将其重新更改composer.jsoncomposer update再次运行即可.

当然你可以从中删除vendor目录,.gitignore但这会减慢提交速度,并将使用更多的磁盘和GitHub/BitBucket空间等.

  • @AhmadMobaraki,'composer.json`和`composer.lock`文件都将由git提交. (2认同)
  • “但是这将减慢提交速度,并且将使用更多的磁盘和GitHub / BitBucket空间等。” 供应商目录压缩了几兆,它不会增加任何严重的提交时间或磁盘空间。还有其他原因不包括供应商目录,但是我认为这两个都不适用于当今时代。就我个人而言,我包括供应商目录,因为它使部署和一致性更容易,并且比小提交大小或在项目上多上传/下载多一秒,这对我来说是更高的优先级。回滚/版本签出也更加一致。 (2认同)