2013-10-26 11 views
53

私はZF2スケルトンアプリケーションを使用していて、外部ライブラリがgitにコミットされないようにする.gitignoreを持っています。デバッグ中に私は行ってライブラリのソースで物事を変える方法を学ぶのが好きです。これらがバージョン管理されていれば元の状態に戻すことは非常に簡単です。コンポーザにライブラリを再インストールする方法を教えてください。

私はComposerに強制的に特定のフレームワークを再インストールさせることで、新しく変更されていないコピーを再度取得できますか?

PS:理由があるので、.gitignoreファイルを削除することをおすすめしないでください。私のサードパーティライブラリが私のアプリのリポジトリに入るのを防ぎます。自動展開中にいつでもインストールすることができます。

+2

1つのオプションは、作曲を削除することです。ロックをしてからコンポーザーをインストールしてください。 – vascowhite

答えて

33

作者用の--prefer-sourceフラグを使用して、VCS情報(使用可能な場合)を使って外部パッケージをチェックアウトすることができます。元の状態に戻すことができます。また、composer updateコマンドを発行した場合、作者はローカルで行った変更を検出し、それらを破棄するかどうか尋ねます。

.gitignoreファイルは、ルートプロジェクト(ZF2スケルトン)に関連しており、ベンダのディレクトリ(サードパーティのライブラリがある場所)が自分のVCSにコミットするのを防ぎます。 ignoreファイルはあなたのベンダーのgit repoとは無関係です。

+3

最初にあなたの-prefer-sourceの提案がうまくいかず、すべてのライブラリを削除して再インストールして、意図した通りに動作させる必要があり、 'composer status -v'変更。 – Julian

+0

うまく動作してくれてうれしいです –

102

ただ、私が何をしたか

rm -rf vendor/* 
+0

これは、数時間の検索と検索を経て本当に助けになりました。#helpful –

+8

は、ベンダーのディレクトリにインストールされていないコンポーネントでは機能しません.... –

+0

最も簡単なソリューション。ニース。 +1これは本当にほとんどの人の問題を解決するはずです。 – Ligemer

5

をフォルダあなたのベンダーをクリア:

  1. は、それはそれのgitのと一緒にもう一度ライブラリを取得し、特定のライブラリのフォルダ
  2. composer update --prefer-source vendor/library-name

ことを削除しましたレポ

0

私はここに、vendor/ディレクトリ内のすべてのパッケージを削除したくなかった私はそれをやった方法です:

  1. rm -rf vendor/package-i-messed-up
  2. composer install再び
関連する問題