【问题标题】:Composer update undo deleted vendor作曲家更新撤消删除的供应商
【发布时间】:2014-12-31 14:47:45
【问题描述】:

composer 是否在删除/或更新供应商 repo 文件夹之前对其进行备份?如果是,我可以在哪里找到备份文件夹?

我对主包进行了作曲家更新,它删除了未推送分支打开的供应商包,因为我的供应商包不在 composer.json 中。所以我希望也许我可以从作曲家在删除文件夹之前创建的备份中获取更改?

【问题讨论】:

  • 所以您在运行composer update 时忽略了有关vendor 文件夹中的更改文件被覆盖的警告,并且您直接在vendor 文件夹中处理代码?抱歉,由于这些保护措施,composer 不会备份供应商文件夹。
  • 当您提交更改但不推送它时,当您确实更改回作曲家分支时,作曲家不会警告您。通常,当您仅在从 composer.json 中删除供应商时才推送它时,这不是问题。当没有备份时,它会再次更好。谢谢你的答案。
  • 我明白你在说什么 - 分支在 .git 中被跟踪但当前未加载?无论哪种方式,都有两个错误导致您的代码丢失.. 1) 直接在 vendor 文件夹中工作 2) 不立即推送您的代码 - 我总是在任何 git commit 之后使用 git push。当然,现在不能做太多,但我指出它是为了防止它在未来发生。
  • 我认为最好的做法是:如果您修改了供应商(并打算稍后将其推送),请将其从供应商移出到您的 src 中。然后你可以安全地从 json 中删除它并做一些事情。

标签: php git symfony composer-php


【解决方案1】:

不,Composer 不这样做。您的更改现已丢失。

为避免将来出现此类问题,我建议将供应商目录设为 Composer 专用的目录。尽量不要编辑供应商目录。一旦您想编辑供应商,有 2 个选项:

  • 将它们移动到 src
  • 在本地克隆原始存储库,对其进行处理并在您的composer.json 中要求本地存储库

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 2016-08-30
    • 2014-08-02
    • 1970-01-01
    • 2018-07-07
    • 2018-10-27
    • 2018-09-11
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多