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

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

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

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

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