我正在Symfony 2.1中构建一个新的应用程序。我正在使用很多使用作曲家拉入的捆绑包。很多这些捆绑包在这个最新版本的Symfony上都有问题,我不得不进入/vendor文件夹来识别问题。
这意味着我直接更改供应商文件 - 纯粹出于测试目的。(当我们修复了一个捆绑包时,我们会分支并提交适当的拉取请求)。
我想知道的是,是否有一些像 composer.phar revert
这样的命令可以撤消对供应商文件夹所做的任何更改(如 git 结帐)。目前,如果我运行作曲家update
或install
它不会这样做。
谢谢
composer install
,如果您保留了 composer.lock 文件,则会将所有供应商恢复到以前安装的状态。
如果您使用composer update
您的composer.lock
已更改为。所以我做了一个小技巧。按 git
还原composer.lock
,然后运行 composer install
。它将删除最新的软件包并下载以前的软件包。
将丢弃更改添加到composer.json
文件:
{
"config": {
"discard-changes": true
}
}
确保您使用的是最新版本的作曲家。
cd /my/project/location/
rm -rf vendor/my_vendor_to_rollBack
composer install
据我所知,除了与版本有关之外,上述答案都不起作用。如果您更改已安装的版本,则可以恢复到以前的版本。
但是,如果您只是删除或更改文件,则更改将显示在composer status -v
中,但是除了删除然后重新要求包之外,无法还原(即使使用"discard-changes":true
composer reinstall "*"
删除并重新安装目录中vendor
的所有软件包。