J'utilise l'application squelette ZF2 et elle a un .gitignore qui empêche les bibliothèques externes d'être validées dans git. Pendant le débogage, j'aime aller changer des choses ici et là dans la source des bibliothèques pour apprendre comment les choses fonctionnent. Si ceux-ci étaient contrôlés par version, il serait très facile de les ramener à leur état d'origine.
Comment puis-je forcer Composer à réinstaller un framework particulier afin que je puisse à nouveau obtenir une nouvelle copie non modifiée?
PS: Veuillez ne pas suggérer de supprimer le fichier .gitignore car il est là pour une raison; cela empêche mes bibliothèques tierces d'entrer dans le référentiel de mon application. Je peux toujours les installer lors d'un déploiement automatisé.
la source
Réponses:
Vous pouvez utiliser l'
--prefer-source
indicateur pour composer pour extraire des packages externes avec les informations VCS (le cas échéant). Vous pouvez simplement revenir à l'état d'origine. De plus, si vous émettez lacomposer update
commande, le compositeur détectera toutes les modifications que vous avez apportées localement et vous demandera si vous souhaitez les annuler.Votre fichier .gitignore est lié à votre projet racine (squelette ZF2) et il empêche le répertoire du fournisseur (où se trouvent vos bibliothèques tierces) de s'engager dans votre propre VCS. Le fichier ignore n'est pas lié aux dépôts git de vos fournisseurs.
la source
composer status -v
me donner les informations avec les modifications.Effacez simplement le dossier de vos fournisseurs
la source
composer clearcache
est un bon ajout dans de tels cas.composer require vendor/package
fera ce que le PO veut et en moins de temps aussi. Je suis un peu surpris que tant de personnes aient voté pour cette réponse.Je ne voulais pas supprimer tous les packages du
vendor/
répertoire, voici donc comment je l'ai fait:rm -rf vendor/package-i-messed-up
composer install
encorela source
composer clearcache
premier au cas où le cache serait corrompu pour une raison quelconque.Ce que j'ai fait:
composer update --prefer-source vendor/library-name
Il récupère à nouveau la bibliothèque avec son repo git
la source
composer clearcache
premier au cas où le cache serait corrompu pour une raison quelconque.Réinstallez les dépendances. Supprimez le dossier du fournisseur (manuellement) ou via la commande rm (si vous êtes dans le dossier du projet, bien sûr) sous Linux avant:
https://www.dev-metal.com/composer-problems-try-full-reset/
la source
Comme l'utilisateur @aaracrr l'a souligné dans un commentaire sur une autre réponse, la meilleure réponse est probablement de requérir à nouveau le package avec la même contrainte de version.
c'est à dire.
ou en spécifiant une contrainte de version
la source
Pour une raison quelconque, personne n'a suggéré le moyen le plus évident et le plus simple de forcer la réinstallation:
la source