27

我正在 Symfony 2.1 中构建一个新应用程序。我正在使用许多使用作曲家拉入的捆绑包。很多这些捆绑包在这个最新版本的 Symfony 中存在问题,我不得不进入 /vendor 文件夹来确定问题。

这意味着我正在直接更改供应商文件 - 纯粹是出于测试目的。(当我们修复了一个捆绑包时,我们会分支并提交适当的拉取请求)。

我想知道是否有一些命令composer.phar revert可以撤消对供应商文件夹所做的任何更改(如 git checkout)。目前,如果我运行一个作曲家update,或者install它不这样做。

谢谢

4

5 回答 5

25

composer install,如果您保留了 composer.lock 文件,会将您的所有供应商恢复到以前安装的状态。

于 2012-06-11T09:16:28.353 回答
21

如果您使用composer update您的composer.lock已更改为。所以我做了一个小技巧。还原composer.lockgit然后运行composer install​​. 它将删除最新的软件包并下载以前的软件包。

于 2015-05-06T15:01:19.053 回答
3

丢弃更改添加到您的composer.json文件中:

{
    "config": {
        "discard-changes": true
    }
}

确保您使用的是最新版本的 Composer。

于 2016-03-09T05:52:23.837 回答
2
 cd /my/project/location/

 rm -rf vendor/my_vendor_to_rollBack

 composer install
于 2017-01-04T17:21:04.520 回答
0

据我所知,除了与版本有关之外,上述答案均无效。如果您更改了已安装的版本,您可以恢复到以前的版本。

但是,如果您只是删除或更改文件,则更改将显示在 中,但是除了删除然后重新请求包之外,composer status -v没有办法恢复(即使使用)。"discard-changes":true

于 2019-05-22T21:32:18.510 回答