パッチを使う
ローカルの変更をコミットする代わりに、変更を .patch ファイルに入れて、後でソースに適用したり、メールで送信したりすることができます。 パッチを使用すると、Git リポジトリで変更をチェックインせずに共有するのに便利なメカニズムになります。
コミットされていない変更からパッチを作成する
コミット ツールウィンドウ(Alt+0 )で、パッチに含めるファイルまたは変更リストを選択し、コンテキストメニューから ローカルの変更からパッチを作成 を選択します。
開いたダイアログで、パッチに含めるすべての変更が選択されていることを確認し、コミットコメント (パッチファイル名として使用されます) を入力して、 パッチの作成 をクリックします。
パッチファイル設定 ダイアログで、次の詳細を指定します。
パッチファイルの場所: デフォルトの場所を選択するか、パッチをファイルに保存しない場合は クリップボード へオプションを選択します。
ベースパス: パッチファイル内のパスを書き込む相対パスを指定します。 通常はプロジェクトディレクトリですが、変更されたファイルが Git リポジトリ内に保存されている場合など、相対パスを使用することもできます。
リバースパッチ: 変更を元に戻せるパッチを作成する場合は、このオプションを選択します。
エンコーディング: ドロップダウンリストからパッチファイルのエンコーディングを選択します。
パッチをファイルに保存する必要がない場合(たとえば、メールで送信したい場合)、 コミット ツールウィンドウ(Alt+0 )で必要なファイルを右クリックし、コンテキストメニューから パッチとしてクリップボードにコピー を選択します。
コミット全体からパッチを作成する
Git ツールウィンドウ Alt+9 の ログ タブで、パッチに含める変更を含むコミットを見つけて、コンテキストメニューから パッチの作成 を選択します。
パッチファイル設定 ダイアログで、次の詳細を指定します。
パッチファイルの場所: デフォルトの場所を選択するか、パッチをファイルに保存しない場合は クリップボード へオプションを選択します。
ベースパス: パッチファイル内のパスを書き込む相対パスを指定します。 通常はプロジェクトディレクトリですが、変更されたファイルが Git リポジトリ内に保存されている場合など、相対パスを使用することもできます。
リバースパッチ: 変更を元に戻せるパッチを作成する場合は、このオプションを選択します。
エンコーディング: ドロップダウンリストからパッチファイルのエンコーディングを選択します。
ファイルからパッチを作成する
任意のビュー(プロジェクト ツールウィンドウ(Alt+1 )、エディター、 コミット ウィンドウなど)で必要なファイルを選択します。
メインメニューから Git | 選択されたファイル | 履歴の表示 を選択するか、選択のコンテキストメニューから Git | 履歴の表示 を選択します。 Git ツールウィンドウに ヒストリー タブが追加され、選択したファイルの履歴が表示され、そのリビジョンを確認して比較できるようになります。
リビジョンを右クリックし、コンテキストメニューから パッチの作成 を選択します。
パッチを適用する
メインメニューで、次を選択します:
を使用して、保存済みの
.patchファイルを選択します。は、パッチファイルの内容をコピーしている場合に選択します。
例: メールでパッチを受け取ったが保存したくない場合に便利です。 Git フォーマットパッチの場合、RubyMine はコミットメッセージと作成者を抽出し、 コミット ツールウィンドウ (Alt+0) の対応するフィールドに自動的に入力します。
開いている パッチの適用 ダイアログで、適用する .patch ファイルへのパスを指定します。
パッチの作成後にソースコードを編集すると、競合が発生する可能性があります。 パッチが競合せずに適用できるかどうかを確認するには、 差分の表示
Ctrl+D をクリックします。 競合がある場合は、対応する行が赤色でハイライトされます。
必要に応じて、
ディレクトリパスを変更 をクリックして、次を選択します:
ベースディレクトリをマップ: パッチファイル内のファイル名を解釈する基準となるディレクトリを指定します。 ベースディレクトリを単一のファイル、ディレクトリ、選択範囲にマップできます。
先頭ディレクトリを除去: パッチで指定されたディレクトリとは異なるディレクトリにあるファイルに変更を適用します。 このボタンをクリックすると、ターゲットファイルへのパス内のスラッシュが 1 つ削除されます。 削除する先頭ディレクトリの数だけボタンをクリックします。 削除されたスラッシュの数は角括弧内に表示されます。
すべての先頭ディレクトリを除去: すべての先頭ディレクトリを一度に除去し、ベースディレクトリ内の指定された名前のファイルにパッチを適用します。
先頭ディレクトリを復元: 最後の 先頭ディレクトリを除去 アクションを元に戻します。 復元する必要がある、以前に取り除かれた先頭ディレクトリの数だけボタンをクリックします。
すべての先頭ディレクトリを復元: すべての先頭ディレクトリを除去 アクションを元に戻します。
パッチを適用する変更リストを選択するか、 名前 フィールドに新しい変更リストの名前を指定して、この変更リストにコメントを入力します (オプション)。
この変更リストをアクティブにする場合は、 アクティブに設定する オプションを選択します。
RubyMine で、非アクティブ時に新しい変更リストに関連付けられたタスクの コンテキストを保存し、変更リストがアクティブになったときにコンテキストを復元するには、 トラックコンテキスト オプションを選択します(詳細は タスクとコンテキストを参照してください)。
クリップボードからパッチを適用する場合、 クリップボードからパッチをその場で解析して適用 オプションを選択すると、RubyMine がクリップボードの内容に含まれるパッチを自動的に検出し、適用を提案します。
パッチを適用する前に一時ストレージ (シェルフ) に移動する場合は、 シェルフにインポート をクリックします (詳細は シェルブまたはスタッシュの変更 を参照してください)。 それ以外の場合は、 OK をクリックします。