Композитор вернуть пакеты

Я создаю новое приложение в Symfony 2.1. Я использую много связок, использованных композитором. Многие из этих пакетов имеют проблемы с этой последней версией Symfony, и мне нужно пойти в папку /vendor, чтобы определить проблемы.

Это означает, что я изменяю файлы поставщика напрямую - исключительно для целей тестирования. (Когда мы исправим пакет, мы разветвляемся и отправляем соответствующий запрос на извлечение).

То, что я хочу знать, есть ли какая-то команда, как composer.phar revert что отменяет любые изменения, сделанные в папке vendor (например, git checkout). На данный момент, если я запускаю композитора update или же installэто не делает этого.

Спасибо

6 ответов

Решение

composer installЕсли вы сохранили файл composer.lock, все ваши поставщики вернутся в ранее установленное состояние.

Если вы использовали composer update ваш composer.lock изменился на. Поэтому я делаю маленький трюк. возвращаться composer.lock от git а потом беги composer install, Он удалит новейшие пакеты и загрузит предыдущие.

Добавить Discard-изменения к вашему composer.json файл:

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

Убедитесь, что вы используете последнюю версию Composer.

 cd /my/project/location/

 rm -rf vendor/my_vendor_to_rollBack

 composer install

composer reinstall "*"удаляет и снова устанавливает все пакеты вvendorкаталог.

Насколько я могу судить, ни один из ответов выше не работает, кроме как в отношении версий. Если вы измените установленную версию, вы можете вернуться к предыдущей версии.

Если вы просто удалите или измените файл, изменение отобразится в composer status -v, но нет способа вернуться (даже с "discard-changes":true) за исключением удаления и повторного запроса пакета.

Другие вопросы по тегам