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