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

変更をシェルフに退避 ダイアログで、変更されたファイルのリストを確認します。

デフォルトではリスト内のすべてのファイルが選択されています。 シェルフにしたくないファイルの選択を解除してください。
項目
ツールチップとショートカット
説明
差分の表示
Ctrl+D
選択したファイルのローカル作業コピーとそのリポジトリバージョンの違いをハイライトする 相違ダイアログを開きます。
変更を元に戻す
選択したファイルのローカル作業コピーに加えられたすべての変更を元に戻します。
変更のリフレッシュ
Ctrl+F5
このボタンをクリックすると、 変更されたファイル ツリービューが最新の状態に再ロードされます。
グループ化
変更したファイルをディレクトリ別またはモジュール別にグループ化する方法を選択します
すべてのノードを展開または折りたたむ
Ctrl+NumPad +
Ctrl+NumPad -
これらのボタンをクリックすると、ディレクトリツリーのすべてのノードが展開または折りたたまれます。 これらのボタンはフラットビューでは使用できません。
変更リスト
なし
このリストから、保留する変更済みファイルを含む変更リストを選択します。 デフォルトでは、アクティブな変更リストが選択されています。
変更されたファイル ペインの下にある概要には、現在選択されている変更リストの統計(変更されたファイル、新規ファイル、削除されたファイルの数など)が表示されます。 この領域には、各タイプのファイルがいくつ表示され、それらのうちいくつが保留されるかも示されます。
コミットメッセージ フィールドに、作成するシェルブの名前を入力します。
「差分」ペインでは、選択したファイルのベースリポジトリバージョンと、これからシェルブするバージョンの違いを調べることができます。
項目
ツールチップとショートカット
説明
/
前の違い / 次の違い Shift+F7 F7
次または前の違いにジャンプします。
最後または最初の違いに達すると、DataGrip は矢印ボタンをクリックするか、 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 を押すか、選択項目のコンテキストメニューから アンシェルブ を選択します。

変更をアンシェルブ ダイアログで、保留されていない変更を復元する変更リストを 名前 フィールドに指定します。 リストから既存の変更リストを選択するか、作成する新しい変更リストの名前を入力できます。 新しい変更リストの説明を コメント フィールドに入力できます (オプション)。
新しい変更リストをアクティブにする場合は、 アクティブにする を選択します。 それ以外の場合、現在アクティブな変更リストはアクティブのままです。
DataGrip が非アクティブ化されたときに新しい変更リストに関連するタスクの コンテキストを保存し、変更リストがアクティブになったときにコンテキストを復元するには、 コンテキストを追跡する オプションを選択します。
シェルフ解除しようとしている変更を削除する場合は、 正常に適用されたファイルをシェルフから除去する オプションを選択します。 シェルフ解除されたファイルはこのシェルフから削除され、別の変更リストに追加され、適用済みとしてマークされます。 コンテキストメニューから 削除 を選択して明示的に削除するまで、完全には削除されません。
OK をクリックしてください。 パッチされたバージョンと現在のバージョンに競合が発生した場合は、 Git の競合を解決する に記載された方法で解決してください。
変更をアンシェルブ ダイアログを表示せずに、変更をサイレントに解除することもできます。 これを行うには、解除するファイルまたは変更リストを選択し、ツールバーの 確認なしでアンシェルブ をクリックするか、 Ctrl+Alt+U を押します。 解除されたファイルは、アクティブな保留中の変更リストに移動されます。
ファイルまたは変更リストを「シェルフ 」タブから「コミット 」タブにドラッグして、サイレントにアンシェルブすることもできます。 Ctrl キーを押しながらドラッグすると、 コミット タブにコピーされますが、シェルフにも保持されます。
保留された変更を破棄
シェルフ ビューで、保持したくない変更を含む変更リストを選択します。
変更リストを右クリックし、コンテキストメニューから 削除 を選択するか、 Delete を押します。
保留されていない変更を復元する
DataGrip を使えば、必要に応じてアンシェルブされた変更を再適用できます。 アンシェルブされたすべての変更は、コンテキストメニューから 削除 を選択して明示的に削除されるまで再利用できます。
表示 をクリックし、 すでにアンシェルブ済み オプションが
有効になっていることを確認します。
復元するファイルまたはシェルフを選択します。
選択のコンテキストメニューから 復元 を選択します。
外部パッチを適用する
DataGrip の内外で作成したパッチをインポートし、シェルブされた変更として適用できます。
シェルフ ビューで、コンテキストメニューから パッチのインポート を選択します。
表示されたダイアログで、適用するパッチファイルを選択します。 選択したパッチが シェルフ タブにシェルフとして表示されます。
パッチを適用して新しく追加されたシェルフを選択し、選択したコンテキストメニューから 変更をアンシェルブ を選択します。
ベースリビジョンの自動シェルフ
Git バージョン管理下にあるファイルのベースリビジョンを常にシェルブするように DataGrip を設定しておくと便利な場合があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
分散バージョン管理システム下のファイルのベースリビジョンをシェルフに退避 オプションを選択してください。
このオプションが有効な場合、ファイルのベースリビジョンはシェルフに保存され、シェルフ適用時に競合が発生した場合の 3-wayマージの際に使われます。 このオプションが無効な場合、DataGrip はベースリビジョンをプロジェクト履歴から探しますが、時間がかかる場合があります。 さらに、競合したシェルフの基となったリビジョンが存在しない場合もあります(例:履歴がリベース操作などで変更された場合)。
デフォルトのシェルフの場所を変更する
デフォルトでは、シェルフディレクトリはプロジェクトディレクトリにあります。 ただし、デフォルトのシェルブの位置を変更したい場合があります。 これは、たとえば、作業コピーをクリーンアップするときに誤ってシェルフを削除しないようにしたい場合や、シェルフを別のリポジトリに保存してチームメンバー間でシェルフを共有できるようにしたい場合に便利です。
Ctrl+Alt+S を押して設定を開き、 を選択します。
シェルフ先の変更 をクリックし、開いたダイアログで新しい場所を指定します。
必要に応じて、 退避済みの変更を新しい場所に移動 を選択して、既存のシェルフを新しいディレクトリに移動します。
未完成の作業を失わずに別のタスクへ切り替えるためにシェルブを活用する方法についてのビデオチュートリアルをご覧ください:
変更のスタッシュ
場合によっては、作業コピーを HEAD コミットと一致させるために元に戻す必要があるかもしれませんが、すでに行った作業を失いたくない場合があります。 これは、作業に関係する可能性のあるアップストリームの変更があることがわかった場合、または緊急の修正が必要な場合に発生する可能性があります。
スタッシュには、HEAD コミットと作業ディレクトリ(スタッシュ)の現在の状態との違いを記録することが含まれます。 インデックスへの変更も隠しておくことができます。
スタッシュ解除とは、保存されたスタッシュをブランチに適用する操作です。
スタッシュは既存のブランチに適用することも、そのスタッシュを元に新しいブランチを作成することもできます。
スタッシュは、必要なだけ何度でも任意のブランチに適用できます。ただし、 必要なブランチに切り替えてください。 以下に注意してください:
一連のコミット後にスタッシュを適用すると、解決する必要がある競合が発生します。
コミットされていない変更を含む作業コピーである、「ダーティ」な作業コピーにスタッシュを適用することはできません。
変更をスタッシュに保存する
コミット ツールウィンドウ(Alt+0 )で、右クリックしてコンテキストメニューを開き、 を選択します。

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

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

別のウィンドウで差分を開くには、差分ペインで
設定 をクリックし、 別ウィンドウで差分を表示 を選択します。
適用 をクリックすると、選択したスタッシュが適用され、リストに保持されます。
選択したスタッシュを適用し、リストから削除するには、 ポップ をクリックします。
現在チェックアウトしているブランチに適用する代わりに、選択されたスタッシュを元に新しいブランチを作成できます。
スタッシュを右クリックしてコンテキストメニューを開き、 アンスタッシュ を選択します。
新規ブランチとして フィールドにそのブランチの名前を入力します。
スタッシュインデックスの変更を適用するには、 インデックスを戻す オプションを選択します。
スタッシュの適用 をクリックしてください。
スタッシュを削除するには、リストで選択し、右クリックしてコンテキストメニューを開き、 ドロップ を選択します。 すべてのスタッシュを削除するには、 クリア を選択します。
