как заставить composer переустановить библиотеку?

<p>я использую скелетное приложение zf2, и у него есть .gitignore, который предотвращает добавление внешних библиотек в git. во время отладки я хотел бы пойти и изменить кое-что в источнике библиотек, чтобы узнать, как все это работает. если бы они контролировались версией, было бы очень легко вернуть их обратно в исходное состояние.</p><p>как я могу заставить composer переустанавливать определенную платформу, чтобы я мог снова получить свежую -нодифицированную копию?</p><p>ps: пожалуйста, не предлагайте удалять файл .gitignore, так как он есть по причине; это предотвращает проникновение сторонних библиотек в репозиторий моего приложения. я всегда могу установить их во время автоматического развертывания.</p>

<p>вы можете использовать флаг <code>--prefer-source</code> для composer, чтобы извлекать внешние пакеты с информацией о vcs (если есть). вы можете просто вернуться в исходное состояние. также, если вы введете команду <code>composer update</code> composer, она обнаружит любые изменения, сделанные вами локально, и спросит, хотите ли вы отменить их.</p><p>ваш файл .gitignore связан с вашим корневым проектом (каркас zf2), и он не позволяет директору вендора (где находятся ваши сторонние библиотеки) делать коммит в вашу собственную vcs. файл игнорирования не связан с репозиторием git ваших поставщиков.</p>

<p>просто очистите папку ваших поставщиков</p><pre><code>rm -rf vendor/* </code></pre>

<p>что я сделал:</p><ol> <li>удалил папку этой конкретной библиотеки</li> <li><code>composer update --prefer-source vendor/library-name</code></li> </ol><p>он снова получает библиотеку вместе с git-репо</p>

<p>я не хотел удалять все пакеты в каталоге <code>vendor/</code>, поэтому вот как я это сделал:</p><ol> <li><code>rm -rf vendor/package-i-messed-up</code></li> <li><code>composer install</code> снова</li> </ol>

<p>переустановите зависимости. удалите папку vendor (вручную) или с помощью команды rm (если вы находитесь в папке проекта, обязательно) в linux до:</p><pre><code>rm -rf vendor/ composer update -v </code></pre><p> <a href="https://www.dev-metal.com/composer-problems-try-full-reset/">https://www.dev-metal.com/composer-problems-try-full-reset/</a> </p>

<p>как указал пользователь @aaracrr в комментарии к другому ответу, вероятно, лучший ответ - повторно запросить пакет с тем же ограничением версии.</p><p>то есть.</p><pre><code>composer require vendor/package </code></pre><p>или указание ограничения версии</p><pre><code>composer require vendor/package:^1.0.0 </code></pre>