Composer 更新删除了我的更改

Composer update has removed my changes

我正在开发 Laravel 应用程序,我 运行 命令 composer update 以安装我添加的新软件包.

我之前在供应商目录中有changed/added一些文件,那些添加的文件已被删除。我 not 提交到我的供应商目录(另一个错误!),因此我无法通过 git.

取回它们

现在我的问题是:

  1. composer update 为 运行 时会发生什么?

  2. 为什么删除的文件不在回收站,有什么 发生在他们身上?永久删除?

同样,我很清楚我可以回滚我的作曲家更新,但这不会给我修改后的文件,它宁愿安装以前版本的原始文件。

如果有任何其他方式(甚至文件恢复)可以帮助我取回这些更改,请告诉我。

  1. composer update 查找已安装依赖项的新版本,如果找到,则安装新版本而不是旧版本。它不关心是否对已安装的依赖项进行了任何更改,因为它只查看它们存储在 composer.lock 文件中的描述。
  2. 由于上述原因,这些文件很可能无法使用 Composer 恢复。您可以尝试在缓存目录 .composer/cache 中查找丢失的文件,但我看不出丢失文件存在的任何原因。是的,它们可能已被永久删除,如果这些很重要,您应该寻找文件恢复程序。

出于上述原因,您绝对不应该存储对依赖项所做的任何修改。

此外,您可能不应该将 vendor/ 添加到您的存储库,因为无论如何都会使用 composer.lock 跟踪所有依赖项,并且更改 vendor 中的依赖项(使它们硬编码)是反对 composer 工作流程。

编辑:

根据 Kévin Dunglas 的建议,您还可以尝试在 IDE(例如 in PHPStorm)的本地历史记录中查找丢失的更改。