我正在使用 Laravel 应用程序,我运行了命令composer update
以安装我添加的新软件包。
之前我已经更改/添加了供应商目录中的一些文件,并且删除了那些已添加的文件。我不已经提交到我的供应商目录(另一个错误!),因此我无法通过git将它们恢复。
现在我的问题是:
composer update
运行时会发生什么?
为什么删除的文件不在回收站中,具有什么功能 发生在他们身上?永久删除?
同样,我很清楚我可以回滚我的作曲家更新,但这不会让我回复我修改的文件,它宁愿安装以前版本的原始文件。
如果有任何其他方式(甚至文件恢复)可以帮助我恢复这些更改,请告诉我。
答案 0 :(得分:9)
composer update
查找已安装的依赖项的新版本,如果找到,则安装新版本而不是旧版本。它并不关心是否对已安装的依赖项进行了任何更改,因为它只查看存储在composer.lock
文件中的描述。.composer/cache
中查找丢失的文件,但我认为丢失的文件没有任何理由存在。是的,它们可能被永久删除,如果这些是关键的,你应该寻找文件恢复程序。出于上述原因,您绝对不应存储对依赖项所做的任何修改。
此外,您可能不应该将vendor/
添加到您的存储库,因为无论如何都会使用composer.lock
跟踪所有依赖项,并且更改vendor
内的依赖项(使它们硬编码)是针对{ {1}}工作流程。
修改强>
根据KévinDunglas的建议,您还可以尝试查找IDE本地历史记录中丢失的更改(例如in PHPStorm)。