シェルブまたはスタッシュの変更
場合によっては、未完了のままのタスクを切り替えて、元に戻る必要があることがあります。作業内容を失うことなく複数の異なる機能に取り組むには、保留中の変更をシェルブまたはスタッシュすることができます。
シェルブ vs スタッシュ
スタッシュの変更はシェルブと非常に似ています。
スタッシュは Git によって生成され、PhpStorm 内または PhpStorm 外から適用できます。
保留された変更を含むパッチは PhpStorm によって生成され、IDE を通じて適用されます。
また、スタッシュにはコミットされていないすべての変更が含まれますが、変更を保留する場合は、すべての変更を保留するのではなく、ローカルの変更の一部を選択できます。
スタッシュとシェルフタブを組み合わせる
変更のシェルブとアンシェルブ
シェルフは、まだコミットしていない保留中の変更を一時的に保存しています。これは、たとえば、別のタスクに切り替える必要があり、後で作業するために変更を脇に置いておきたい場合に役立ちます。
PhpStorm を使用すると、個別のファイルと変更リスト全体の両方をシェルブできます。
保留にすると、必要に応じて何度でも変更を適用できます。
変更をシェルフに退避
コミットツールウィンドウ Alt+0 で、シェルブするファイルまたは変更リストを右クリックし、コンテキストメニューから変更をシェルフに退避を選択します。
変更をシェルフに退避ダイアログで、変更されたファイルのリストを確認します。

デフォルトではリスト内のすべてのファイルが選択されています。シェルフにしたくないファイルの選択を解除してください。
項目
ツールチップとショートカット
説明
差分の表示
Ctrl+D
選択したファイルのローカル作業コピーとそのリポジトリバージョンの違いをハイライトする相違ダイアログを開きます。
前回保存した状態に戻す
選択したファイルのローカル作業コピーに加えられたすべての変更を元に戻します。
変更のリフレッシュ
Ctrl+F5
このボタンをクリックすると、変更されたファイルツリービューが最新の状態に再ロードされます。
グループ化
変更したファイルをディレクトリ別またはモジュール別にグループ化する方法を選択します
すべてのノードを展開または折りたたむ
Ctrl+NumPad +
Ctrl+NumPad -
これらのボタンをクリックすると、ディレクトリツリーのすべてのノードが展開または折りたたまれます。これらのボタンはフラットビューでは使用できません。
変更リスト
なし
このリストから、保留する変更済みファイルを含む変更リストを選択します。デフォルトでは、アクティブな変更リストが選択されています。
変更されたファイルペインの概要には、変更されたファイル、新規ファイル、削除されたファイルの数など、現在選択されている変更リストの統計が表示されます。この領域には、各タイプのファイルがいくつ表示され、それらのうちいくつが保留されるかも示されます。
コミットメッセージ: フィールドに、作成するシェルブの名前を入力します。
「差分」ペインでは、選択したファイルのベースリポジトリバージョンと、これからシェルブするバージョンの違いを調べることができます。
項目
ツールチップとショートカット
説明
/
前の違い / 次の違い Shift+F7 F7
次または前の違いに移動します。
最後または最初の違いに達すると、PhpStorm は、矢印ボタンをクリックするか、F7/Shift+F7 をもう一度押して、ローカルで変更された他のファイルを比較することを提案します。この動作は、差分ビューアーの設定の最後の変更の後に次のファイルに移動するオプションによって異なります。
ソースに移動
F4
選択したファイルをエディターで開きます。キャレットは差分ビューアーと同じ位置に配置されます。
前 / 次のファイルを比較する
Alt+Left Alt+Right
これらのボタンをクリックして、前後のファイルのローカルコピーとサーバーからの更新を比較します。
ビューアー
ビューアーモードを選択します: 横並びまたは統合。横並びモードには 2 つのパネルがあり、統合モードには 1 つのパネルがあります。
コードを編集して、両方のビューアーで受諾、追加、前回保存した状態に戻すアクションを実行できます。
テキストを変更できるのは、横並びビューアーの右側部分、または統合ビューアーの行のみです。
ファイルのローカルバージョンのみを編集できます。読み取り専用ステータスのファイルは編集できません。
空白
差分ビューアーが空白をどのように扱うかを定義します。
無視しない : 空白は重要であり、すべての違いがハイライトされています。このオプションはデフォルトで選択されています。
空白をトリム : 空白が行の最後と先頭にある場合は空白を削除します(
("\t", " "))。2 行の末尾の空白のみが異なる場合、これらの行は等しいと見なされます。
2 行が異なる場合、末尾の空白は単語モードでハイライトされません。
空白を無視 : 空白は、ソースコード内の場所に関係なく、重要ではありません。
空白と空行を無視 : 空白と空行を無視します。次のエンティティは無視されます。
すべての空白 (「ホワイトスペースを無視する」オプションのように)
空白のみで構成される追加または削除されたすべての行
空白以外の部分を変更せずに行を分割または結合するすべての変更。
例:
a b cとa \n b cの違いは、このモードではハイライトされません。
インポートとフォーマットを無視 : インポート文と空白の変更は無視されます(ただし、文字列リテラル内の空白は考慮されます)。
ハイライトモード
差分の粒度がハイライトされる方法を選択します。
利用可能なオプションは以下のとおりです。
変更された単語をハイライト : 変更された単語がハイライトされます
変更行をハイライト : 変更された行がハイライトされます
分割された変更をハイライト : このオプションを選択すると、大きな変更が小さな変更に分割されます。
例:
A \n BおよびA X \n B Xは、1 つではなく 2 つの変更として扱われます。変更された文字をハイライト : 変更されたシンボルがハイライトされます
ハイライトしない : このオプションを選択した場合、違いはまったくハイライトされません。
大幅に変更されたファイルを操作する場合は、ハイライトしないオプションを使用します。そのような場合、ハイライトすると、レビュー中にさらに困難が生じる可能性があります。
変更されていないフラグメントを折りたたむ
両ファイル内の変更されていないフラグメントをすべて折りたたみます。折りたたみ不可の変更されていない行の数は、差分 & マージ設定ページで設定できます。差分 & マージページを開くには、Ctrl+Alt+S を押して設定を開き、に移動します。
スクロールの同期
両方の差分ペインを同時にスクロールします。このボタンを放すと、各ペインを個別にスクロールできます。
編集を使用不可にする
選択したファイルのローカルコピーの編集を有効にします。デフォルトでは無効になっています。編集を有効にすると、変更したファイルをコミットする前に、直前に変更を加えることができます。
エディター設定
利用可能なオプションのリストを開きます。これらのオプションを選択またはクリアして、行番号、インデントガイド、空白、ソフトラップを表示または非表示にします。
ヘルプ
F1
ブラウザーを開き、対応するヘルプページを表示します。
上記のオプションのほとんどはテキストファイルでのみ使用できます。バイナリファイルでは、使用できる diff オプションの数が限られています。
変更をシェルフに退避ボタンをクリックしてください。
変更をシェルフに退避ダイアログを表示せずに、変更をサイレントにシェルフすることもできます。これを行うには、シェルフするファイルまたは変更リストを選択し、ツールバーの 確認なしでシェルフに退避をクリックするか、Ctrl+Shift+H を押します。シェルフ名として、シェルフする変更を含む変更リストの名前が使用されます。
同じ名前のシェルフが多数存在することを避けるために (たとえば、デフォルトなど)、ファイルまたは変更リストをコミットタブからコミットツールウィンドウのシェルフタブにドラッグし、アクティブになるまで 1 秒ほど待ちます。マウスボタンを放した後、新しいシェルフ名を編集します。
変更をアンシェルブ
保留中の変更は、延期された変更をシェルブから保留中の変更リストに移動することです。切り詰められていない変更は、ビューから除外したり、シェルフから削除することができます。
シェルフタブで、シェルフを解除する変更リストまたはファイルを選択します。
Ctrl+Shift+U を押すか、選択項目のコンテキストメニューからアンシェルブを選択します。
変更をアンシェルブダイアログで、保留されていない変更を復元する変更リストを名前フィールドに指定します。リストから既存の変更リストを選択するか、作成する新しい変更リストの名前を入力できます。新しい変更リストの説明をコメントフィールドに入力できます (オプション)。
新しい変更リストをアクティブにする場合は、アクティブにするを選択します。それ以外の場合、現在アクティブな変更リストはアクティブのままです。
PhpStorm で、非アクティブ化されたときに新しい変更リストに関連付けられたタスクのコンテキストを保存し、変更リストがアクティブになったときにコンテキストを復元するようにするには、コンテキストを追跡するオプションを選択します (詳細については、タスクとコンテキストを参照してください)。
シェルフ解除しようとしている変更を削除する場合は、正常に適用されたファイルをシェルフから除去するオプションを選択します。シェルフ解除されたファイルはこのシェルフから削除され、別の変更リストに追加され、適用済みとしてマークされます。コンテキストメニューから削除を選択して明示的に削除するまで、完全には削除されません。
OK をクリックします。パッチされたバージョンと現在のバージョンの間に競合が発生した場合は、Git の競合を解決する説明に従って解決してください。
変更をアンシェルブダイアログを表示せずに、変更をサイレントに解除することもできます。これを行うには、解除するファイルまたは変更リストを選択し、ツールバーの 確認なしでアンシェルブをクリックするか、Ctrl+Alt+U を押します。解除されたファイルは、アクティブな保留中の変更リストに移動されます。
ファイルまたは変更リストを「シェルフ」タブから「コミット」タブにドラッグして、サイレントにアンシェルブすることもできます。Ctrl キーを押しながらドラッグすると、コミットタブにコピーされますが、シェルフにも保持されます。
保留された変更を破棄
シェルフビューで、保持したくない変更を含む変更リストを選択します。
変更リストを右クリックし、コンテキストメニューから削除を選択するか、Delete を押します。
保留されていない変更を復元する
PhpStorm を使用すると、必要に応じてアンシェルブされた変更を再適用できます。アンシェルブされたすべての変更は、コンテキストメニューから削除を選択して明示的に削除されるまで再利用できます。
表示をクリックし、すでにアンシェルブ済みオプションが
有効になっていることを確認します。
復元するファイルまたはシェルフを選択します。
選択のコンテキストメニューから復元を選択します。
外部パッチを適用する
PhpStorm の内部または外部に作成されたパッチをインポートして、保留変更として適用することができます。
シェルフビューで、コンテキストメニューからパッチのインポートを選択します。
表示されたダイアログで、適用するパッチファイルを選択します。選択したパッチがシェルフタブにシェルフとして表示されます。
パッチを適用して新しく追加されたシェルフを選択し、選択したコンテキストメニューから変更をアンシェルブを選択します。
ベースリビジョンの自動シェルフ
Git バージョン管理下にあるファイルの基本リビジョンを常にシェルブするように PhpStorm を構成すると便利な場合があります。
Ctrl+Alt+S を押して設定を開き、を選択します。
分散バージョン管理システム下にあるファイルのシェルブベースリビジョンオプションを選択してください。
このオプションを有効にすると、ファイルのベースリビジョンがシェルフに保存されます。シェルフの適用によって競合が発生した場合、3 方向マージ(英語)の実行時にこのシェルフが使用されます。このオプションを無効にすると、PhpStorm はプロジェクト履歴からベースリビジョンを検索しますが、これには時間がかかる場合があります。また、競合するシェルフのベースリビジョンが見つからない場合もあります(たとえば、リベース操作の結果として履歴が変更された場合など)。
デフォルトのシェルフの場所を変更する
デフォルトでは、シェルフディレクトリはプロジェクトディレクトリにあります。ただし、デフォルトのシェルブの位置を変更したい場合があります。これは、たとえば、作業コピーをクリーンアップするときに誤ってシェルフを削除しないようにしたい場合や、シェルフを別のリポジトリに保存してチームメンバー間でシェルフを共有できるようにしたい場合に便利です。
Ctrl+Alt+S を押して設定を開き、を選択します。
シェルブ先の変更をクリックし、開いたダイアログで新しい場所を指定します。
必要に応じて、退避済みの変更を新しい場所に移動を選択して、既存のシェルフを新しいディレクトリに移動します。
未完成の作業を失うことなく、別のタスクに切り替えるためのシェルブからの恩恵を受ける方法に関するこのビデオチュートリアルを参照してください。
変更のスタッシュ
場合によっては、作業コピーを HEAD コミットと一致させるために元に戻す必要があるかもしれませんが、すでに行った作業を失いたくない場合があります。これは、作業に関係する可能性のあるアップストリームの変更があることがわかった場合、または緊急の修正が必要な場合に発生する可能性があります。
スタッシュには、HEAD コミットと作業ディレクトリ(スタッシュ)の現在の状態との違いを記録することが含まれます。インデックスへの変更も隠しておくことができます。
スタッシュ解除は、ブランチに格納されたスタッシュを適用することを含みます。
既存のブランチにスタッシュを適用するか、それに基づいて新しいブランチを作成することができます。
スタッシュは、必要なブランチに何度でも適用できます。必要なブランチに切り替えるだけです。それを念頭に置いて:
一連のコミット後にスタッシュを適用すると、解決する必要がある競合が発生します。
コミットされていない変更を含む作業コピーである、「ダーティ」な作業コピーにスタッシュを適用することはできません。
変更をスタッシュに保存する
コミットツールウィンドウ Alt+0 で右クリックしてコンテキストメニューを開き、を選択します。

開いているスタッシュダイアログで、適切な Git ルートを選択し、正しいブランチがチェックアウトされていることを確認します。
メッセージフィールドには、隠そうとしている変更を記述します。
スタッシュのローカル変更を行い、検査およびテストのためにインデックスにステージングされた変更を作業ツリーに持ち込むには、インデックスを保持するオプションを選択します。
スタッシュの作成をクリックします。
スタッシュの変更は、同じコミットツールウィンドウ内のコミットタブの隣のスタッシュタブに移動されます。
スタッシュの変更を確認し、スタッシュを適用する
コミットツールウィンドウ Alt+0 で、スタッシュタブを開きます。

スタッシュのリストから適用するスタッシュを選択します。
スタッシュの変更を確認し、現在のバージョンのコードと比較するには、リストから任意のファイルをダブルクリックして、スタッシュの diff を開きます。

別のウィンドウで差分を開くには、差分ペインで
設定をクリックし、別ウィンドウで差分を表示を選択します。
適用をクリックすると、選択したスタッシュが適用され、リストに保持されます。
選択したスタッシュを適用し、リストから削除するには、ポップをクリックします。
現在チェックアウトされているブランチに適用するのではなく、選択したスタッシュに基づいて新しいブランチを作成できます。
スタッシュを右クリックしてコンテキストメニューを開き、削除を選択します。
新規ブランチとしてフィールドにそのブランチの名前を入力します。
スタッシュインデックスの変更を適用するには、インデックスを戻すオプションを選択します。
スタッシュの適用をクリックします。
スタッシュを削除するには、リストで選択し、右クリックしてコンテキストメニューを開き、ドロップを選択します。すべてのスタッシュを削除するには、クリアを選択します。
関連ページ:
ファイルを Git に追加し、変更を追跡する
Git にファイル追加コミットツールウィンドウを開きます。を押すか、コンテキストメニューから VCS に追加を選択して、バージョン管理外ファイル変更リスト内のファイルをバージョン管理下に置きます。変更リスト全体を追加することも、個別のファイルを選択することもできます。プロジェクトで Git 統合を有効にしている場合、PhpStorm は、新しく作成された各ファイルをバージョン管理下に追加することを提案します。この動作は、の設定ダイアログで変更できます。特定のファイルを常にバージョン管理しないよ...
ファイルの差分ビューアー
この差分ビューアーは、2 つのファイルまたはファイルの 2 つのバージョン (ローカルの変更、またはローカルファイルとリモートリポジトリ内のそのリビジョン間の変更) を比較するときに表示されます。バイナリや .jar ファイルなど、あらゆる種類のファイルを比較できます。これを開くには、比較する 2 つのファイル、またはそのバージョンを比較するファイルを選択し、を押します。差分ビューアーが新しいタブで開きます。差分ビューアーは、コード補完、ライブテンプレート、その他の機能を有効にする強力なエディター...
タスクを管理する
プロジェクトで作業する場合は、完了する必要のある小さな作業で作業を整理できます。これらは、自分で設定したタスクです。PhpStorm では、大きな作業を小さなタスクに分割し、変更リストに関連付けることができます。これらは、課題追跡システムからのタスクである可能性もあります。例: PhpStorm から直接割り当てられたタスクやバグを処理できます。これを可能にするには、IDE とトラッカーアカウントを接続します。課題追跡との統合を構成する:PhpStorm は次のものとの統合をサポートします。J...
Git の競合を解決する
チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。Git では、プル、マージ、リベース、チェリーピック、変更のスタッシュ解除、またはパッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があ...
Git ブランチの管理
Git では、ブランチは、たとえば機能の作業が必要な場合や、リリースのためにコードベースの特定の状態を固定する必要がある場合などに、メインの開発ラインから分岐できるようにする強力なメカニズムです。PhpStorm では、ブランチによるすべての操作は Git ブランチポップアップで実行されます。これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前を持つ Git ウィジェットをクリックします。Git ツールウィンドウのブランチペインで、ブランチを管理し、複数のブラ...
