Composer更新已删除我的更改

时间:2016-08-26 05:32:13

标签: php git laravel composer-php recovery

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

之前我已经更改/添加了供应商目录中的一些文件,并且删除了那些已添加的文件。我已经提交到我的供应商目录(另一个错误!),因此我无法通过git将它们恢复。

现在我的问题是:

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

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

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

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

1 个答案:

答案 0 :(得分:9)

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

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

    修改

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