IntelliJ IDEA 2024.1 ヘルプ

チュートリアル: IntellJ IDEA をデフォルトのコマンドラインマージツールとして使用する

IntelliJ IDEA は強力なコマンドラインマージツールとなり、バージョン管理ワークフローを改善します。

このチュートリアルでは、IntelliJ IDEA をデフォルトのコマンドラインマージツールとして設定し、開発ワークフローにシームレスに統合する方法について説明します。また、IDE 内で直接競合を解決する方法についても説明します。

コマンドラインからファイルをマージする方法の詳細については、コマンドラインからファイルをマージするを参照してください。

前提条件

このチュートリアルに従うには、最新の Git(英語) バージョンがインストールされていることを確認してください。

プロジェクトで .gitconfig ファイルを設定する

IntelliJ IDEA をデフォルトのマージツールとして使用する前に、.gitconfig を編集する必要があります。

ここで、マージ競合を解決するために Git がデフォルトで使用するツールを指定します。使用している実行可能ファイルへのパスと、競合が正常に解決されたことを示すマージツールが終了することを指定します。

Git のドキュメント(英語)から .gitconfig をカスタマイズする方法の詳細を参照してください。

  1. .gitconfig を見つけて、オペレーティングシステムに基づいて次の構成を追加します。

    IntelliJ IDEA を C:\Program Files\JetBrains\IntelliJ IDEA にインストールした場合は、次の構成を使用できます。

    [merge] tool = intellij [mergetool "intellij"] cmd = 'C:/Program Files/JetBrains/IntelliJ IDEA/bin/idea64.exe' merge "$LOCAL" "$REMOTE" "$BASE" "$MERGED" trustExitCode = true [mergetool] keepBackup = false

    Mac OS の場合は次の構成を使用します。

    [merge] tool = intellij [mergetool "intellij"] cmd = '/Applications/IntelliJ IDEA.app/Contents/macOS/idea' merge “$LOCAL” “$REMOTE” “$BASE” “$MERGED” trustExitCode = true [mergetool] keepBackup = false

    IntelliJ IDEA を /opt/idea にインストールした場合は、次の設定を使用します。

    [merge] tool = intellij [mergetool "intellij" cmd = '/opt/idea/bin/idea.sh' merge “$LOCAL” “$REMOTE” “$BASE” “$MERGED” trustExitCode = true [mergetool] keepBackup = false

    デフォルトでは、Git は競合を解決する前にファイルの内容のコピーを保持します。マージ後、Git は競合タグが付いた元のファイルを .orig 拡張子で保存します。変数 keepBackupfalse に設定すると、このファイルは保存されません。

  2. .gitconfig の編集を終了します。

マージ競合をトリガーする

IntelliJ IDEA が現在デフォルトのマージツールであるかどうかをテストするには、マージ競合を発生させます。これを行うには、単純な Java クラスを使用して新しいプロジェクトを作成します。

  1. 簡単な Java クラスを作成します。

    次のサンプルコードを使用できます。

    public class MyClass { public static void main(String[] args) { System.out.println("one"); System.out.println("two"); } }
  2. 変更を master ブランチにコミットします。

    First commit in Master branch.
  3. master ブランチから新しいブランチをチェックしてください。これを feature1 と呼び、あなたの MyClass.java を変更します。

    Commit in feature branch.
  4. master ブランチをもう一度確認し、MyClass.java をもう一度変更します。

  5. コマンドラインから feature1master にマージしてみます:

    git merge feature1

    結合されていないファイルがあることを示す競合が発生します。

  6. git mergetool を実行します。

    IntelliJ IDEA が自動的に起動し、マージツールを開いて競合を解決します。

IntelliJ IDEA のマージ競合を解決する

IDE が開き、マージ競合が視覚的に表示されます。

  1. 3 者間マージダイアログで、変更を適用するペインを選択し、ガターの左を適用 The left diff arrow. または右を適用 を押します。

    この例では、右側の feature1 ブランチからの変更を選択します。

    Use IntelliJ IDEA as a default merge tool
  2. 適用をクリックします。

  3. ターミナルでマージ競合を解決したファイルで cat コマンドを実行し、マージ結果を確認します。

IntelliJ IDEA をデフォルトのコマンドラインマージツールとして正常に構成し、IDE 内で競合を解決する方法を学習しました。