Estoy usando la aplicación esqueleto ZF2 y tiene un .gitignore que evita que las bibliotecas externas se comprometan con git. Mientras depuro, me gusta ir y cambiar cosas aquí y allá en la fuente de las bibliotecas para aprender cómo funcionan las cosas. Si fueran versiones controladas, sería muy fácil revertirlas a su estado original.
¿Cómo puedo obligar a Composer a reinstalar un marco en particular para poder obtener una copia nueva, sin modificar, nuevamente?
PD: No sugiera eliminar el archivo .gitignore ya que está allí por una razón; evita que mis bibliotecas de terceros entren en el repositorio de mi aplicación. Siempre puedo instalarlos durante una implementación automatizada.
php
zend-framework2
composer-php
Julian
fuente
fuente
Respuestas:
Puede usar la
--prefer-source
bandera del compositor para verificar paquetes externos con la información de VCS (si hay alguno disponible). Simplemente puede volver al estado original. Además, si emite elcomposer update
comando, el compositor detectará los cambios que realizó localmente y le preguntará si desea descartarlos.Su archivo .gitignore está relacionado con su proyecto raíz (esqueleto ZF2) y evita que el directorio del proveedor (donde están sus bibliotecas de terceros) se comprometa con su propio VCS. El archivo ignorado no está relacionado con los repositorios git de sus proveedores.
fuente
composer status -v
me proporcionó la información con los cambios.Simplemente borre su carpeta de proveedores
fuente
composer clearcache
es una buena adición en tales casos.composer require vendor/package
hará lo que quiera el OP y en menos tiempo también. Me sorprende un poco que tantos hayan votado a favor de esta respuesta.No quería eliminar todos los paquetes en el
vendor/
directorio, así que así es como lo hice:rm -rf vendor/package-i-messed-up
composer install
de nuevofuente
composer clearcache
primero en caso de que el caché se dañe por alguna razón.Lo que hice:
composer update --prefer-source vendor/library-name
Vuelve a buscar la biblioteca junto con su repositorio de git
fuente
composer clearcache
primero en caso de que el caché se dañe por alguna razón.Reinstale las dependencias. Elimine la carpeta del proveedor (manualmente) o mediante el comando rm (si está en la carpeta del proyecto, seguro) en Linux antes:
https://www.dev-metal.com/composer-problems-try-full-reset/
fuente
Como el usuario @aaracrr señaló en un comentario sobre otra respuesta, probablemente la mejor respuesta sea volver a requerir el paquete con la misma restricción de versión.
es decir.
o especificando una restricción de versión
fuente
Por alguna razón, nadie sugirió la forma obvia y más sencilla de forzar la reinstalación:
fuente