ZF2スケルトンアプリを使用していますが、外部ライブラリがgitにコミットされるのを防ぐ.gitignoreがあります。デバッグ中は、ライブラリのソースをあちこちで変更して、物事の仕組みを学びたいです。これらがバージョン管理されている場合、元の状態に戻すのは非常に簡単です。
Composerに特定のフレームワークを強制的に再インストールさせて、変更されていない新しいコピーを再度取得するにはどうすればよいですか?
PS:.gitignoreファイルは理由があるため、削除しないでください。サードパーティのライブラリがアプリのリポジトリに入らないようにします。自動展開時にいつでもインストールできます。
composerの--prefer-source
フラグを使用して、VCS情報(利用可能な場合)を含む外部パッケージをチェックアウトできます。単純に元の状態に戻すことができます。また、composer update
コマンドを発行すると、composerはローカルで行った変更を検出し、それらを破棄するかどうかを尋ねます。
.gitignoreファイルはルートプロジェクト(ZF2スケルトン)に関連しており、ベンダーdir(サードパーティのライブラリがある)が独自のVCSにコミットするのを防ぎます。無視ファイルは、ベンダーのgitリポジトリとは無関係です。
ベンダーフォルダをクリアするだけです
rm -rf vendor/*
私がしたこと:
composer update --prefer-source vendor/library-name
Git repoとともにライブラリを再度フェッチします
vendor/
ディレクトリ内のすべてのパッケージを削除したくなかったので、次のようにしました。
rm -rf vendor/package-i-messed-up
composer install
もう一度依存関係を再インストールします。 Linuxでベンダーフォルダーを(手動で)削除するか、rmコマンドを使用して(プロジェクトフォルダーにいる場合は必ず)削除します。
rm -rf vendor/
composer update -v
ユーザー@aaracrrが別の回答のコメントで指摘したように、おそらく最良の回答は、同じバージョン制約でパッケージを再要求することです。
すなわち。
composer require vendor/package
またはバージョン制約を指定する
composer require vendor/package:^1.0.0