Saya menggunakan aplikasi kerangka ZF2 dan memiliki .gitignore yang mencegah perpustakaan eksternal untuk berkomitmen pada git. Saat debugging saya suka pergi dan mengubah hal-hal di sana-sini di sumber perpustakaan untuk mempelajari cara kerja sesuatu. Jika ini adalah versi yang dikontrol, akan sangat mudah untuk mengembalikannya ke keadaan semula.
Bagaimana saya bisa memaksa Komposer untuk menginstal ulang kerangka tertentu sehingga saya bisa mendapatkan salinan baru yang tidak dimodifikasi lagi?
NB: Harap jangan menyarankan untuk menghapus file .gitignore karena ada karena suatu alasan; itu mencegah perpustakaan pihak ketiga saya masuk ke repositori aplikasi saya. Saya selalu dapat menginstalnya selama penerapan otomatis.
php
zend-framework2
composer-php
Julian
sumber
sumber
Jawaban:
Anda dapat menggunakan
--prefer-source
flag untuk komposer untuk memeriksa paket eksternal dengan informasi VCS (jika ada). Anda cukup kembali ke keadaan semula. Juga jika Anda mengeluarkancomposer update
perintah, komposer akan mendeteksi setiap perubahan yang Anda buat secara lokal dan menanyakan apakah Anda ingin membuangnya.File .gitignore Anda terkait dengan proyek root Anda (kerangka ZF2) dan mencegah direktori vendor (di mana lib pihak ketiga Anda berada) untuk melakukan komitmen ke VCS Anda sendiri. File abaikan tidak terkait dengan repo git vendor Anda.
sumber
composer status -v
memberi saya info dengan perubahannya.Hapus saja folder vendor Anda
sumber
composer clearcache
adalah tambahan yang bagus dalam kasus seperti itu.composer require vendor/package
akan melakukan apa yang diinginkan OP dan dalam waktu yang lebih singkat. Saya sedikit terkejut bahwa begitu banyak yang memilih jawaban ini.Saya tidak ingin menghapus semua paket dalam
vendor/
direktori, jadi inilah cara saya melakukannya:rm -rf vendor/package-i-messed-up
composer install
lagisumber
composer clearcache
terlebih dahulu jika cache rusak karena suatu alasan.Apa yang saya lakukan:
composer update --prefer-source vendor/library-name
Itu mengambil perpustakaan lagi bersama dengan repo gitnya
sumber
composer clearcache
terlebih dahulu jika cache rusak karena suatu alasan.Instal ulang dependensi. Hapus folder vendor (secara manual) atau melalui perintah rm (jika Anda berada di folder proyek, tentu) di Linux sebelumnya:
https://www.dev-metal.com/composer-problems-try-full-reset/
sumber
Seperti yang ditunjukkan oleh pengguna @aaracrr dalam komentar pada jawaban lain, mungkin jawaban terbaik adalah dengan meminta kembali paket dengan batasan versi yang sama.
yaitu.
atau menentukan batasan versi
sumber
Untuk beberapa alasan tidak ada yang menyarankan cara yang jelas dan paling mudah untuk menginstal ulang paksa:
sumber