我是否应该将 Laravel vendor 目录添加到 .gitignore 中?

Should I add Laravel vendor directory to .gitignore or not?

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

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

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

vendor 目录默认在 .gitignore 中。这是个好主意,因为 composer 会随时在任何机器上为您安装在 composer.json 中找到的所有软件包。如果您在使用某些软件包的新版本时遇到问题,只需在 composer.json 和 运行 composer update 中再次将其改回。

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

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

安装新包、执行 composer update 等导致包更改的操作会将已安装包的确切版本写入 composer.lock。您应该将此文件包含在存储库的版本控制文件中。

您可以 运行 composer install 自动安装来自 composer.lock 的包版本的确切列表。因为它要进行版本控制,所以您可以随时将其回滚到工作版本并再次 运行 composer install

旁注:composer dump-autoload 不应在 vendor 中进行任何破坏性更改。