Ich verwende die ZF2-Skeleton-App und sie hat einen Gitignore, der verhindert, dass externe Bibliotheken an Git übergeben werden. Während des Debuggens ändere ich gerne hier und da Dinge in der Quelle der Bibliotheken, um zu erfahren, wie die Dinge funktionieren. Wenn diese versioniert wären, wäre es sehr einfach, sie in ihren ursprünglichen Zustand zurückzusetzen.
Wie kann ich Composer zwingen, ein bestimmtes Framework neu zu installieren, damit ich wieder eine neue, unveränderte Kopie erhalten kann?
PS: Bitte schlagen Sie nicht vor, die .gitignore-Datei zu entfernen, da sie aus einem bestimmten Grund vorhanden ist. Es verhindert, dass meine Bibliotheken von Drittanbietern in das Repository meiner App gelangen. Ich kann sie jederzeit während einer automatisierten Bereitstellung installieren.
quelle
Antworten:
Sie können das
--prefer-source
Flag für Komponisten verwenden, um externe Pakete mit den VCS-Informationen (falls verfügbar) auszuchecken. Sie können einfach zum ursprünglichen Zustand zurückkehren. Auch wenn Sie einencomposer update
Befehl ausgeben, erkennt der Composer alle lokal vorgenommenen Änderungen und fragt, ob Sie sie verwerfen möchten.Ihre .gitignore-Datei bezieht sich auf Ihr Root-Projekt (ZF2-Skelett) und verhindert, dass das Herstellerverzeichnis (in dem sich die Bibliotheken Ihrer Drittanbieter befinden) auf Ihr eigenes VCS übertragen wird. Die Ignorierdatei hat nichts mit den Git-Repos Ihrer Anbieter zu tun.
quelle
composer status -v
gab mir dann die Informationen mit den Änderungen.Löschen Sie einfach den Ordner Ihres Anbieters
quelle
composer clearcache
ist in solchen Fällen eine gute Ergänzung.composer require vendor/package
wird tun, was das OP will und in kürzerer Zeit auch. Ich bin ein bisschen überrascht, dass so viele diese Antwort positiv bewertet haben.Ich wollte nicht alle Pakete im
vendor/
Verzeichnis löschen , also habe ich es so gemacht:rm -rf vendor/package-i-messed-up
composer install
nochmalquelle
composer clearcache
zuerst ausgeführt, falls der Cache aus irgendeinem Grund beschädigt wurde.Was ich getan habe:
composer update --prefer-source vendor/library-name
Es holt die Bibliothek wieder zusammen mit seinem Git-Repo
quelle
composer clearcache
zuerst ausgeführt, falls der Cache aus irgendeinem Grund beschädigt wurde.Installieren Sie die Abhängigkeiten neu. Entfernen Sie den Herstellerordner (manuell) oder über den Befehl rm (wenn Sie sich sicher im Projektordner befinden) unter Linux, bevor Sie:
https://www.dev-metal.com/composer-problems-try-full-reset/
quelle
Wie Benutzer @aaracrr in einem Kommentar zu einer anderen Antwort hervorhob, besteht die wahrscheinlich beste Antwort darin, das Paket mit derselben Versionsbeschränkung erneut anzufordern.
dh.
oder Angeben einer Versionsbeschränkung
quelle
Aus irgendeinem Grund schlug niemand den offensichtlichen und direktesten Weg vor, um eine Neuinstallation zu erzwingen:
quelle