8

composerでsymfony 2.1を使用しており、 composer updateを実行しようとしています

ただし、「コミットされていない変更があります」というメッセージが表示され続け、ベンダーディレクトリ内のファイルを変更したことを覚えておらず、ほぼすべてのパッケージで表示されます!

変更を元に戻すためにcomposer installを試みましたが、効果がないようです。ロックファイルを削除してインストールを試みると、 「symfony 2.1 requires symfony 2.1 -> symfony 2.1 satisfiable」のようなエラーメッセージが表示されます。意味がありません。

ベンダーのコンテンツを削除すると、同じエラー メッセージが表示され、何もインストールされません。

私がしていることは何もうまくいかないようです。「コミットされていない変更」に関係なく「強制」で更新する方法はありますか

4

3 に答える 3

16

使用できますcomposer status -vvendor/このコマンドを使用してファイルの変更を検出する方法と、それを修正する方法は次のとおりです。

まず、パッケージが変更されていないことを確認します。

➜  SymfonyApp git:(master) ✗ composer status
No local changes

次に、ベンダー ファイルを変更します。

➜  SymfonyApp git:(master) ✗ echo "modification" >> vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php

次に、変更されたベンダー ファイルについて composer に教えてもらいます (変更されたファイルを表示するには、-v オプションに注意してください)。

➜  SymfonyApp git:(master) ✗ composer status -v
You have changes in the following dependencies:
/Users/adrienbrault/Developer/SymfonyApp/vendor/symfony/symfony:
    M src/Symfony/Component/HttpKernel/Kernel.php

次に、ベンダーの git リポジトリをリセットして、ファイルを元の状態に戻します。

➜  SymfonyApp git:(master) ✗ cd /Users/adrienbrault/Developer/SymfonyApp/vendor/symfony/symfony
➜  symfony  git checkout .
➜  symfony  cd -
~/Developer/SymfonyApp

最後に、ファイルが composer によって変更されたように見えないことを確認します。

➜  SymfonyApp git:(master) ✗ composer status -v
No local changes

更新: composer は、これを処理するのに役立つはずです

于 2012-09-13T09:12:58.633 に答える
3

これは、1 つのサーバーで依存関係を共有するさまざまなプロジェクトに影響を与えたため、たとえば、ベンダーの作成者が、バグを報告してレポにコミットする前に、簡単な変更をテストするように私に依頼したため、これを実行して、グローバルにdiscard-changestrueに設定しました。

php composer.phar config -g  discard-changes 1
于 2016-03-28T07:18:48.180 に答える